4

我正在为我的网站使用 INSERT ON DUPLICATE KEY 语句。它用于创建新闻项目,所以我想我可以使用相同的 MySQL 命令来创建和更新新闻项目。

但是,当我使用以下内容时:

INSERT INTO table (id,title,content) VALUES(NULL,"Test","Test");

它不会创建新的自动增量值,而是会引发错误。但是,该命令适用于我的主开发服务器。但不是在我的笔记本电脑上。两个版本的 MySQL 是相同的,唯一的区别是 MySQL 是手动安装在我的服务器上的,而我的笔记本电脑上是用 WAMP 安装的。

是否有任何可能导致此问题的 MySQL 变量?

4

3 回答 3

4

我建议使用INSERT INTO table (title,content) VALUES("Test","Test");

这将在表中创建一个具有新的递增 ID 的新行。

于 2012-06-10T10:41:10.617 回答
1

设法尽可能地解决它。

我检查了我的代码,发现当我插入空的 POST'd ID 时,它用引号括起来。我现在更改了它,以便它在不带引号的情况下放置 NULL。所以我的查询现在应该如下所示:

INSERT INTO table (id,title,content) VALUES(NULL,"test","Test")
ON DUPLICATE KEY UPDATE title=VALUES(title), content=VALUES(content);

现在可以了。

于 2012-06-10T12:11:37.583 回答
0

我认为你应该这样查询,

INSERT INTO table (title,content) VALUES("Test","Test");

如果它仍然不起作用,请检查id列是否设置为自动增量。

于 2012-06-10T10:43:51.317 回答