我有一个列上有CHECK
的表。检查没有用特定的名称显式添加,所以它得到一个自动生成的名称。
CREATE TABLE `test` (
`quantity` INT(11) NOT NULL CHECK (quantity > 0)
);
SELECT TABLE_NAME, CONSTRAINT_NAME FROM information_schema.check_constraints;
字符串
产出:
TABLE_NAME CONSTRAINT_NAME
test quantity
型
但似乎我不能通过自动生成的名称DROP
这个约束。
ALTER TABLE `test` DROP CONSTRAINT `quantity`;
型
产出:
ERROR 1091 (42000) at line 8: Can't DROP CONSTRAINT `quantity`; check that it exists
型
此过程在MySQL上工作(使用不同的自动生成名称),但在mariaDB 10.7.8中似乎不工作。我如何删除此检查?
1条答案
按热度按时间1aaf6o9v1#
这里的
CHECK
是作为列定义的一部分给出的,你可以使用MODIFY COLUMN
删除它:字符串
但是如果使用
CONSTRAINT [constraint_name] CHECK (expression)
添加,例如:型
然后你可以使用
DROP CONSTRAINT
删除它:型