我有一个数据库,我需要删除一些外键,但我事先不知道外键是否仍然存在.
我找到了一些存储过程(http://forums.mysql.com/read.php?97,218825,247526),但我不想为此创建存储过程.
我试图在存储过程中使用查询,但是我使用"IF EXISTS(SELECT NULL FROM等等)得到错误...
我只能IF EXISTS在存储过程中使用吗?
现在,我唯一可以运行的是
SELECT * FROM information_schema.TABLE_CONSTRAINTS
WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = 'myschema'
AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'mytable';
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个
IF EXISTS (SELECT NULL FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND CONSTRAINT_NAME = parm_key_name) THEN
(...) do something (...)
END IF;
Run Code Online (Sandbox Code Playgroud)
但我得到了 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF' at …
我有1亿行,而且它太大了.我看到很多差距.(因为我删除,添加,删除,添加.)
我想用自动增量填补这些空白.如果我重置它..有任何harM吗?
如果我这样做,它会填补空白吗?:
mysql> ALTER TABLE tbl AUTO_INCREMENT = 1;
Run Code Online (Sandbox Code Playgroud)