正确地使用MySQL插入语句

下面的文章主要介绍了在mysql语句中插入语句和mysql插入语句的实际用法,在介绍mysql插入语句时经常用到的语句在实际应用中,所以相关的内容还是很多不错的高手。


{ } {插入low_priority延迟|忽略}
{在} { }(tbl_name col_name,…)
值(表达式,…),(…),…




mysqlinsert为SELECT语句:


{ } {插入low_priority延迟|忽略}
{在} { }(tbl_name col_name,…)
选择…




插入语句:


{ } {插入low_priority延迟|忽略}
{在} tbl_name
集col_name =表达,col_name =表达,…


到现有的表中插入新的一行,插入…在基于指定插入值报表的形式价值,mysqlinsert为选择插入,选择从其他表中的值插入到表中…在MySQL 3.22.5或以后版本的Windows窗体的值,MySQL 3.22.10或后来支持col_name =表达式语法。

tbl_name是表,行应插入的列名称表或SET子句表示语句指定的值的列。

如果没有指定插入列表…值或插入…选择所有列的值必须在提供的值()表或选择。如果你不知道表中列的顺序,使用描述tbl_name找出。

任何未显式给出值的列都被设置为默认值。例如,如果指定一个列表而不命名表中的所有列,则未命名的列被设置为它们的默认值。默认值赋值在7.7个创建表语法中描述。

表达式可以引用以前在值表中设置的任何列:


MySQL >插入tbl_name(COL1,COL2)值(15、2×2);


但不是这样:


MySQL >插入tbl_name(COL1,COL2)值(COL2 * 2,15);



如果您指定的关键词low_priority,插入执行延期直到没有其他客户看表。在这种情况下,客户必须等到INSERT语句完成,可如果表是经常需要很长的时间。这是相反的插入延迟。

如果你指定一个关键词忽略一个多值的行插入任何行拷贝现有的主键或唯一键被忽略和不插入。如果没有指定插入的忽视,如果有任何线复制现有的核心价值是放弃。你可以使用C API函数mysql_info()检查多少行插入表。

如果MySQL的配置与dont_use_default_fields选项,插入语句产生一个错误,除非你指定所有需要非空值的列。看到4.7.3典型配置选项。

的mysqlinsert成…SELECT语句满足以下条件:

查询不能包含逐项子句。

INSERT语句的目的地不能出现在选择查询的FROM子句,因为这是禁止在ANSI SQL使你插入表选择。(问题是选择可能会找到一张以前的插入操作。同一时期,当一个小节是一个孩子,这种情况可以在容易混淆)。

auto_increment照常工作。

如果使用插入…选择或插入…价值陈述有多个值的列表,你可以使用C API函数mysql_info()获取查询信息。信息的字符串的格式如下:

记录:100个重复:0个警告:0

重复指出不能插入的行数,因为它们与现有的唯一索引值重复。警告指出在出现某些问题时尝试插入列值的次数:

将NULL插入到列为非空的列中,并将列设置为默认值。

超级列范围值被设置为一列数字,值在适当的范围值中切割到端点。

数值列设置为10.34 A的值,尾随垃圾被剥离,仍然插入数字部分。如果值不是一个数字,则将列设置为0。

插入一个字符串为char、varchar、文本、或BLOB列,在列的最大长度值截断该列的最大长度。

将列类型非法的值插入日期或时间列中。列设置为列类型的适当零值。

延迟期权的INSERT语句是一个MySQL的专属选项-如果你的客户不能等待插入完成是很有用的。这是一个常见的问题,当你使用MySQL的日志,和你运行SELECT语句,花很长时间做it.delayed介绍MySQL 3.22.15表面,这是MySQL的ANSI SQL92的延伸。

当您使用插入延迟时,客户将立即准备好,当其他线程不使用该表时,将插入该行。

使用延迟插入的另一个主要优点是插入许多客户的包并写入一个块。

以上相关内容是介绍mysql插入语句,希望能帮助大家学习。