作者:ppoujjh | 来源:互联网 | 2023-02-13 09:55
我试图删除sqlite列上的UNIQUE约束,但我没有删除约束的名称.如何找到UNIQUE约束名称的名称以将其删除.
下面是我在表中看到的模式,我想删除约束
UNIQUE (datasource_name)
sqlite> .schema datasources
CREATE TABLE "datasources" (
created_on DATETIME NOT NULL,
changed_on DATETIME NOT NULL,
id INTEGER NOT NULL,
datasource_name VARCHAR(255),
is_featured BOOLEAN,
is_hidden BOOLEAN,
description TEXT,
default_endpoint TEXT,
user_id INTEGER,
cluster_name VARCHAR(250),
created_by_fk INTEGER,
changed_by_fk INTEGER,
"offset" INTEGER,
cache_timeout INTEGER, perm VARCHAR(1000), filter_select_enabled BOOLEAN, params VARCHAR(1000),
PRIMARY KEY (id),
CHECK (is_featured IN (0, 1)),
CHECK (is_hidden IN (0, 1)),
FOREIGN KEY(created_by_fk) REFERENCES ab_user (id),
FOREIGN KEY(changed_by_fk) REFERENCES ab_user (id),
FOREIGN KEY(cluster_name) REFERENCES clusters (cluster_name),
UNIQUE (datasource_name),
FOREIGN KEY(user_id) REFERENCES ab_user (id)
);
Michal Kottm..
9
SQLite仅支持有限的ALTER TABLE,因此您无法使用ALTER TABLE删除constaint."删除"列可以做的是重命名表,使用除UNIQUE约束之外的相同模式创建新表,然后将所有数据插入到新表中.ALTER TABLE文档的" 制作其他种类的表模式更改"部分中介绍了此过程.
1> Michal Kottm..:
SQLite仅支持有限的ALTER TABLE,因此您无法使用ALTER TABLE删除constaint."删除"列可以做的是重命名表,使用除UNIQUE约束之外的相同模式创建新表,然后将所有数据插入到新表中.ALTER TABLE文档的" 制作其他种类的表模式更改"部分中介绍了此过程.