日期:2014-05-19  浏览次数:20787 次

mysql中insert语句中,value与values之间的区别?
mysql> select * from tt;
+-------+------+------+
| colid | col2 | col3 |
+-------+------+------+
| 1 | 0001 | NULL |
| 2 | 0002 | NULL |
| 3 | 0003 | -3 |
| 4 | 0003 | -3 |
| 5 | 0004 | -4 |
| 6 | 0003 | -3 |
| 7 | 0004 | -4 |
+-------+------+------+
7 rows in set (0.00 sec)

mysql>
mysql> insert into tt values (null,3,-3),(null,4,-4);
Query OK, 2 rows affected (0.05 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> insert into tt value (null,3,-3),(null,4,-4);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

请问value与values之间的区别?

------解决方案--------------------
据我所知,Values是MySQL的关键字,value好像不是吧(没有很确切的官方文档查阅)

insert...values是MySQL参考文档中定义的写法,而insert...value则没有找到这方面的参考文档,可查阅以下链接http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html

insert...values/value都能执行,不仅说明MySQL的强大,也说明楼主的强大,不管你们信不信,反正我是信了^_^

------解决方案--------------------
values只能插入一条.value是错误的.
插入多条可以使用查询语句.
1.insert into ... select * from tb
也可以使用union all语句
2.insert into ... select 'val1' ... union all select 'val2' ...
 value()是对XML数据执行XQuery,并返回 SQL 类型的值。