我有一张桌子:
CREATE TABLE IF NOT EXISTS `application` (
`appid` int(11) NOT NULL,
`appcode` varchar(250) NOT NULL,
`parentid` int(11) DEFAULT NULL,
`appname` varchar(250) NOT NULL,
`appcat` varchar(150) NOT NULL,
`appsubcat` varchar(150) NOT NULL,
`appdesc` varchar(250) NOT NULL,
`active` char(1) NOT NULL DEFAULT 'Y'
);
TRUNCATE TABLE ivumetastore.application;
添加alter命令:
ALTER TABLE application MODIFY COLUMN `appid` int(11) NOT NULL
AUTO_INCREMENT PRIMARY KEY;
由于我在单独的bat文件中运行这两个命令,因此第二次出现错误,因为已经存在appid PK。如果对Alter命令不存在,该怎么办?或者截断所有索引,以便重新创建它?
答案 0 :(得分:0)
基于this SO question,我们可以尝试通过存储过程执行以下操作:
IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = 'your_db_name' AND
TABLE_NAME = 'application' AND
CONSTRAINT_NAME = 'PRIMARY') THEN
ALTER TABLE application
MODIFY COLUMN `appid` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY;
END IF;