Я унаследовал базу данных Sybase, в которой включена опция «уникальный индекс auto_identity». В рамках процесса обновления мне нужно добавить несколько дополнительных столбцов в таблицы в этой базе данных, т.е.
alter table mytable add <newcol> float default -1 not null
Когда я пытаюсь это сделать, я получаю следующую ошибку:
Column names in each table must be unique, column name SYB_IDENTITY_COL in table #syb__altab....... is specifed more than once
Можно ли добавить столбцы в таблицу с включенным этим свойством?
Обновление 1:
Я создал следующий тест, который повторяет проблему:
use master
sp_dboption 'esmdb', 'unique auto_identity indexoption',true
use esmdb
create table test_unique_ids (test_col char)
alter table test_unique_ids add new_col float default -1 not null
Команда alter table здесь выдает ошибку. (Пробовал это на ASE 15 / Solaris и 15,5 / Windows)
Обновление 2:
Это ошибка в интерфейсе Sybase dbisql , которую клиентские инструменты Sybase Central и Interactive SQL используют для доступа к базе данных, и она влияет только на таблицы с включенной опцией «уникальный индекс auto_identity».
Чтобы обойти эту проблему, используйте другой клиент SQL (например, через JDBC) для подключения к базе данных или используйте isql в командной строке.