背景
我有一个包含两列的表,一个是键,word
而另一个不是键,它是instances
。
我想将每个单词插入一个新行,并将其instances
字段增加1。
现在,如果现在插入的单词已经存在,则不应该重复,但它的instances
字段应该递增。
示例
instances
增加1。instances
增加1。instances
增加1。所以现在表格看起来像这样:
hello 2
world 1
我尝试过:
MySql_Connection.query("
INSERT INTO `my_database`.my_table
(`word`) VALUES ('"+ word_to_insert +"')
UPDATE `instances` = `instances` + 1
ON DUPLICATE KEY `instances` = `instances` + 1
");
收到语法错误
答案 0 :(得分:1)
你的陈述应该是
MySql_Connection.query("
INSERT INTO `my_database`.my_table
(`word`) VALUES ('"+ word_to_insert +"')
ON DUPLICATE KEY UPDATE `instances` = `instances` + 1
");
代替。
您也应该为instances
列提供DEFAULT值,以便在插入新单词时在实例列中获取1
的值。
CREATE TABLE my_table (
word VARCHAR(100) NOT NULL PRIMARY KEY,
instances INT NOT NULL DEFAULT 1
);