阅读(385)
赞(15)
Mycat2 Sql兼容性 insert
2021-09-08 11:46:16 更新
insert兼容性
INSERT [INTO] [schema_name.]tbl_name
[(col_name,...)]
{VALUES | VALUE} ({expr },...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
INSERT [INTO] [schema_name.]tbl_name
SET col_name={expr | DEFAULT}, ...
[ ON DUPLICATE KEY UPDATE
col_name=expr [, col_name=expr] ... ]
检查项
last_insert_id
在自增主键的情况下能在报文中正确返回id
和在sql
中使用last_insert_id()
函数可以查询id
变量
单表
只会把SQL
转发对应节点
全局表
把sql
往配置的(多个)dataNode
下发
分片表
- 带有分片字段的
sql
发往对应的dataNode
- 不带分片字段则往(多个)
dataNode
下发
在分片表下
- 不支持分片键使用函数运算,也不能是子查询
- 不支持
PARTITION
语法 - 注意如果带有子查询,该子查询不能查询物理表中不存在的表
不支持分片键的分片键带有默认值约束,分片值必须显式指定,对于全局二级索引的分片键也是如此
对于时间类型,请使用字符串表达,例如
INSERT INTO `travelrecord2`(`id`,`user_id`,`traveldate`,`fee`,`days`,`blob`)
VALUES
(6,2,'2021-02-22 18:34:05.983692',4.5,4,NULL),
(7,2,'2021-02-22 18:34:05.983692',4.5,4,NULL),
(8,2,'2021-02-22 18:34:05.983692',4.5,4,NULL);