2
Я использую этот код формы переименования столбца или другой:SQLite удалить столбец
BEGIN;
PRAGMA writable_schema = 1;
UPDATE SQLITE_MASTER SET SQL = replace(SQL, '[id] INTEGER NOT NULL PRIMARY KEY', '[id] INTEGER') WHERE NAME = 'test_table';
PRAGMA writable_schema = 0;
COMMIT;
Но я не могу удалить:
BEGIN;
PRAGMA writable_schema = 1;
UPDATE SQLITE_MASTER SET SQL = replace(SQL, '[id] INTEGER NOT NULL PRIMARY KEY', 'DELETE THIS COLUMN') WHERE NAME = 'test_table';
PRAGMA writable_schema = 0;
COMMIT;
Этот код я знаю :) Не предлагайте.
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;
Edit: я нашел!
BEGIN;
PRAGMA writable_schema = 1;
UPDATE SQLITE_MASTER SET SQL = replace(SQL, '[id] INTEGER NOT NULL PRIMARY KEY**,**', '') WHERE NAME = 'test_table';
PRAGMA writable_schema = 0;
COMMIT;
Вы можете ответить на свой вопрос и отметьте его ... – rene
@rene Спасибо !!! – Zuhan