Я создал таблицу, используя приведенное ниже определение для столбца идентификации Teradata:
ID INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 0 MAXVALUE 100000000 NO CYCLE), ---- UNIQUE PRIMARY INDEX ( ID )
Уже несколько месяцев столбец ID работает исправно, автоматически генерируя уникальное значение для столбца. Однако за последний месяц ELMAH периодически сообщал о следующем исключении из нашего приложения .NET 4.0 ASP.NET:
Teradata.Client.Provider.TdException: [Teradata Database] [2801] Duplicate unique prime key error in DATABASENAME.TABLENAME.
Я смог воспроизвести его, открыв SQL Assistant и вставив кучу записей в таблицу с необработанным SQL. Как и ожидалось, в большинстве случаев он вставлялся успешно, но в других случаях выдавал указанное выше исключение.
Похоже, эта ошибка возникает из-за того, что Teradata пытается сгенерировать значение для этого столбца, которое было создано ранее.
Кто-нибудь знает, как докопаться до сути происходящего? По крайней мере, я хотел бы немного глубже отладить проблему.