我正在努力学习一些非常基本的MySQL代码,所以我显然误解了一些非常基本的东西。这个超级简单的代码就是一个很好的例子:
CREATE TEMPORARY TABLE temp_table (count int);
INSERT INTO temp_table VALUES((1),(2),(3));
SELECT * FROM temp_table;
返回:
11 errors were found during analysis.
A comma or a closing bracket was expected (near "1" at position 31)
Unexpected token. (near ")" at position 32)
Unexpected token. (near "," at position 33)
Unexpected token. (near "(" at position 34)
Unexpected token. (near "2" at position 35)
Unexpected token. (near ")" at position 36)
Unexpected token. (near "," at position 37)
Unexpected token. (near "(" at position 38)
Unexpected token. (near "3" at position 39)
Unexpected token. (near ")" at position 40)
Unexpected token. (near ")" at position 41)
如果我只做INSERT INTO temp_table VALUES(1);
它可以正常工作但是我似乎在使用括号时遇到问题,所以我似乎无法插入多个值。
如果我INSERT INTO temp_table VALUES(1,2,3);
它会返回#1136 - Column count doesn't match value count at row 1
我一次又一次地遇到类似问题的各种MySQL代码示例,我在各种来源中找到它们,包括StackOverflow。所以我不确定我错过了什么。
在我的主机控制面板中,我可以看到我正在运行MariaDB 5.3,在phpMyAdmin(4.5.2)中,我可以看到我正在运行MySQL 5.7.9。
但是我遇到了直接来自MariaDB's website的代码问题。
你会(温柔地)盯着我吗?我相信这一定是基本的,我愿意学习。我只是不知道问题是什么,直到我了解这些基本原理,我才会开始转动轮子。
答案 0 :(得分:4)
删除wrap()
CREATE TEMPORARY TABLE temp_table (count int);
INSERT INTO temp_table VALUES(1),(2),(3);
SELECT * FROM temp_table;
答案 1 :(得分:1)
详细说明@scaisEdge注意事项,当您使用多个值编写插入查询时,无法将所有值组合在一起。
//Wrong
INSERT INTO temp_table values ((val1),(val2),(val3));
您应该执行以下操作:
//Right
INSERT INTO temp_table values (val1), (val2), (val3);
因此您的查询应该是:
INSERT INTO temp_table VALUES(1),(2),(3);
希望这能解释,享受!