使用MySQL替换为

使用MySQL替换为
操作替换,插入很相似,除了一点,如果表中的一个旧记录作为主键或唯一索引的新记录的值相同,旧的记录之前插入新记录删除。请参阅13.2.4部分插入语法。

注意,除非表有主键或唯一索引,否则使用替换语句是没有意义的。这个语句将与INSERT相同,因为没有索引用于确定新行是否复制了其他行。

所有列的值是在免费更换说明。所有失踪的列设置为各自的默认值,这是由于插入相同的。你不能参考值从当前行,你也不在新的使用价值。如果你使用一个分配等col_name = col_name + 1,在右边的列名称参考处理为默认(col_name)。因此,任务是相当col_name =默认设置(col_name)+ 1。
为了能够使用替换,您必须同时具有表的插入和删除权限。

替换语句返回一个数字指示受影响的行数。数是行,删除和插入的数量总和。如果数字是1为一个单一的线替换,插入一行,没有行删除。如果数大于1时,一个或多个旧行在插入新的行删除。如果表包含多个唯一索引,而新排份不同独特的指标不同旧行值,它可能是一个单排更换几个老线。

可以很容易地确定受影响的行数是否替换只添加一行,或替换替换其他行:检查该数字是否为1(Add)或更大。

如果你使用的是C的API,你可以使用mysql_affected_rows()函数来获取受影响的行数。

目前,你不能改变它到一个表中的查询,和来自同一个表中选择。

下面是对所使用算法的详细描述(该算法也用于加载数据……替换):

1。尝试在表中插入新行。

2。当插入失败时,因为主键或关键字的重复关键字错误:

从表中删除重复关键字值的冲突行。

B.再次尝试将新行插入表中。

今天我嗓子疼,睡吧。

使用格式:

{ } |取代low_priority延迟
{在} tbl_name {(col_name,…)}
({ } |默认值表达式,…()…),…
或:

{ } |取代low_priority延迟
{在} tbl_name
设置默认col_name = { } | expr,…
或:

{ } |取代low_priority延迟
{在} tbl_name {(col_name,…)}
选择…

tag:替换电脑软件mysql

相关内容