如何删除mysql中的签入?

yuvru6vn  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(307)

我想把支票从table上放下来。当我在mysql中使用这个查询时,我没有得到任何check约束的名称。

  1. SHOW CREATE TABLE test
  2. CREATE TABLE `test (``ID` int(11) NOT NULL AUTO_INCREMENT,
  3. `price` int(11) DEFAULT NULL CHECK (`price` > 20),
  4. PRIMARY KEY (`ID`)
  5. )`
xbp102n0

xbp102n01#

在mysql 8.0.16中,我测试了您的表:

  1. mysql> CREATE TABLE test (ID int(11) NOT NULL AUTO_INCREMENT, price int(11) DEFAULT NULL CHECK (price > 20), PRIMARY KEY (ID) );
  2. mysql> SHOW CREATE TABLE test\G
  3. ***************************1. row***************************
  4. Table: test
  5. Create Table: CREATE TABLE `test` (
  6. `ID` int(11) NOT NULL AUTO_INCREMENT,
  7. `price` int(11) DEFAULT NULL,
  8. PRIMARY KEY (`ID`),
  9. CONSTRAINT `test_chk_1` CHECK ((`price` > 20))
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

现在我们看到mysql自动生成的check约束的名称。

  1. mysql> ALTER TABLE test DROP CHECK test_chk_1;

这记录在https://dev.mysql.com/doc/refman/8.0/en/alter-table.html | DROP {CHECK | CONSTRAINT} symbol 一旦我删除了check约束,它就不再显示:

  1. mysql> SHOW CREATE TABLE test\G
  2. ***************************1. row***************************
  3. Table: test
  4. Create Table: CREATE TABLE `test` (
  5. `ID` int(11) NOT NULL AUTO_INCREMENT,
  6. `price` int(11) DEFAULT NULL,
  7. PRIMARY KEY (`ID`)
  8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

如果您使用的是8.0.16之前的mysql版本,则不需要执行任何操作,因为早期版本的mysql不支持检查约束。没有要删除的内容,因为创建表时它不会保存约束。

展开查看全部

相关问题