В других СУБД вы бы использовали ALTER TABLE DROP CONSTRAINT ...
.Однако sqlite поддерживает только варианты RENAME TABLE
и ADD COLUMN
команды ALTER TABLE
( Source ).
Поэтому, боюсь, вам придется создать новую таблицу:
CREATE TABLE testtable2(
test1 TEXT, test2 TEXT, test3 TEXT, test4 TEXT DEFAULT FALSE,
UNIQUE (test1)
);
Затем вставьте данные из старой таблицы в новую таблицу:
INSERT INTO testtable2 SELECT * FROM testtable;
Затем вы можете удалить старую таблицу:
DROP TABLE testtable;
Инаконец, переименуйте новую таблицу в исходное имя:
ALTER TABLE testtable2 RENAME TO testtable;
ОБНОВЛЕНИЕ:
Будьте осторожны, чтобы ваше новое ограничение было менее допустимым.Например, если в исходной таблице были следующие строки:
test1 test2 test3 test4
---------- ---------- ---------- ----------
a a 100 1
a b 200 2
a c 300 3
Тогда INSERT INTO testtable2 SELECT * FROM testtable;
завершится ошибкой, поскольку test1
не является уникальным:
SQL error: column test1 is not unique