【发布时间】:2016-04-26 15:42:30
【问题描述】:
由于某种原因,我的 sql 脚本无法添加主键语句。我想知道是否有人可以解释为什么?
这是表格语句。
CREATE TABLE IF NOT EXISTS `wp_bwg_album` (
`id` bigint(20) NOT NULL,
`name` varchar(255) NOT NULL,
`slug` varchar(255) NOT NULL,
`description` mediumtext NOT NULL,
`preview_image` mediumtext NOT NULL,
`random_preview_image` mediumtext NOT NULL,
`order` bigint(20) NOT NULL,
`author` bigint(20) NOT NULL,
`published` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这是它失败的原因 -
ALTER TABLE `wp_bwg_album`
ADD PRIMARY KEY (`id`);
最后的声明也与表格有关。
ALTER TABLE `wp_bwg_album`
MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT;
我对问题所在感到困惑,SQL 是来自我的实时服务器的转储。我只是在家里更新我的开发服务器。使用 MySql 工作台我得到标准的 1064 错误。
16:58:40 添加主键 (
id) 错误代码:1064。您在 你的 SQL 语法;检查与您的 MySQL 对应的手册 'ADD PRIMARY KEY 附近使用正确语法的服务器版本 (id)' 在第 1 行 0.000 秒
任何帮助将不胜感激。
【问题讨论】:
-
它正在处理sqlfiddle
-
wp_bwg_album是空表吗?如果不是,id中是否有重复值? -
我在语法中看不到任何会阻止它执行的东西。老实说,我有点困惑。数据库类型中是否有任何设置可能导致这种情况?
-
刚刚仔细检查了一个没有插入的空白表,在脚本末尾为“id”添加了一个自动增量。
-
让我感到奇怪的是,在“错误代码:1064”之前,您的错误消息以“[timestamp] ADD PRIMARY KEY (`id`)”开头。那是从哪里来的?您的 MySQL 客户端是否向您建议
ADD PRIMARY KEY (`id`)是它收到的整个命令并且已检测到语法错误?如果是这样,则该错误非常有意义,并且可能由命令ALTER TABLE `wp_bwg_album`的第一部分意外/过早终止/执行来解释,而第二部分ADD PRIMARY KEY (`id`)被视为第二个单独的命令。
标签: mysql sql database wordpress alter-table