656
阿里云
INSERT__数据操作语言_SQL语法参考_云数据库 OceanBase-阿里云
该语句用于添加一个或多个记录到表。
格式
INSERT [INTO] tblname
[(colname,...)]
{VALUES|VALUE} ({expr | DEFAULT},...)
[ ON DUPLICATE KEY UPDATE
colname=expr
[, colname=expr] ... ] ;
或者
INSERT [INTO] tblname
[(colname,...)]
{VALUES|VALUE} (colvalues,...)
[ON DUPLICATE KEY UPDATE
colname=expr
[, colname=expr] ... ] ;
[(colname,...)]用于指定插入数据的列。
同时插入多列时,用“,”隔开。
支持ON DUPLICATE KEY UPDATE
Insert语句后面不支持set操作
INSERT…ON DUPLICATE KEY UPDATE… 语句执行,affect row的计算:
在没有设置client_capabilities 中CLIENT_FOUND_ROWS的情况下:
作为新行插入的话,affected_row= 1;
存在冲突行的情况下,如果更新前后数据相同的话, affected_row = 0; 否则affectd_row = 2;
如果设置了CLIENT_FOUND_ROWS:
作为新行插入的话,affected_row=1;
如果更新前后数据相同的话,affectd_row=1;
如果更新前后数据不相同的话,affected_row=2;
CLIENT_FOUND_ROWS的影响在于:不设置CLIENT_FOUND_ROWS的情况下,计算affected_row的值,只计算实际更新了行数,而设置了CLIENT_FOUND_ROWS的话,会把所有touched行数(满足冲突条件的行)都记上,而不管其是否发生了真正的数据修改。
示例
Oceanbase>show create table test;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test | CREATE TABLE `test` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
UNIQUE KEY `a_uniq` (`a`) BLOCK_SIZE 16384
) DEFAULT CHARSET = utf8mb4 REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
Oceanbase>insert into test values(1,2);
Query OK, 1 row affected (0.01 sec)
Oceanbase>insert into test values(1,3);
ERROR 1062 (23000): Duplicate entry '1' for key 'a_uniq'
Oceanbase>insert into test values(1,3) on duplicate key update a = a+1;
Query OK, 2 rows affected (0.01 sec)
Oceanbase>select * from test;
+------+------+
| a | b |
+------+------+
| 2 | 2 |
+------+------+
1 row in set (0.01 sec)
注意: 同时插入多个值时,如果这些值在不同的分区,会报错。
Oceanbase>show create table tp;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tp | CREATE TABLE `tp` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
) DEFAULT CHARSET = utf8mb4 REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE partition by hash(a) partitions 7 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
Oceanbase>insert into tp values(1,2),(2,3),(3,4);
ERROR 1235 (0A000): Insert data cross partition not supported
最后更新:2016-11-24 11:23:47
上一篇:
DROP VIEW__数据定义语言_SQL语法参考_云数据库 OceanBase-阿里云
下一篇:
UPDATE__数据操作语言_SQL语法参考_云数据库 OceanBase-阿里云
DeleteShard__日志库相关接口_API-Reference_日志服务-阿里云
主机新手使用指南__管理控制台_使用指南_云虚机主机-阿里云
安装 EDAS Agent__快速开始_企业级分布式应用服务 EDAS-阿里云
添加和验证压测目标__环境管理_Lite用户使用手册_性能测试-阿里云
查看诊断报告__实例诊断_性能管理_用户指南(RDBMS)_数据管理-阿里云
Taskitem数据类型__数据类型_API 手册_CDN-阿里云
获取 Region 列表__资源管理类 API_Open API 参考_企业级分布式应用服务 EDAS-阿里云
RemoveListenerWhiteListItem__Listener相关API_API 参考_负载均衡-阿里云
更新媒体工作流__媒体工作流接口_API使用手册_视频点播-阿里云
分配公网 IP 地址__网络相关接口_API 参考_云服务器 ECS-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云