5.2 写入语法

1. INSERT INTO

INSERT INTO 用于实时写入数据

语法定义:

INSERT INTO tbl_name [(col_name,...)] VALUES ({常量|NULL|DEFAULT},...),(...),...
  • 判断数据冲突与否的依据是主键,不定义主键也可以使用insert into
  • 如遇数据重复(主键冲突),默认忽略该行。
  • insert into在values中没有指定值的列,系统会自动补默认值(ddl中定义的默认值)

语法样例:

### 单条写入,指定列
insert into t (c1, c2, c3) values(1, 1.0, 'hello_1')
insert into t (c1, c2, c3) values(1, 2.0, null)
insert into t (c1, c3) values(3, 'hello_2')


### 单条写入,不指定列
insert into t values(1, 1.0, 'hello_1')
insert into t values(1, 2.0, null)
insert into t values(1, 2.0, default)


## 批量写入 (强烈推荐)
insert into t values(1, 1.0, 'hello_1'),(2, 2.0, 'hello_2'),(3, 3.0, 'hello_3'),(...)

2. REPLACE INTO

REPLACE INTO 用于实时覆盖写入数据。

语法定义:

REPLACE INTO tbl_name [(col_name,...)] VALUES ({常量|NULL|DEFAULT},...),(...),...
  • 判断数据冲突与否的依据是主键,不定义主键也可以使用replace into
  • 如遇数据重复(主键冲突),会覆盖当前记录;没有重复,等同于insert语义
  • replace into在values中没有指定值的列,系统会自动补默认值(ddl是定义的)

3. UPDATE INTO

UPDATE INTO 用于更新写入数据,是HybridDB定制的一种高性能适合批量更新的语法。

语法定义:

UPDATE INTO tbl_name [(col_name,...)] VALUES ({常量|NULL|DEFAULT},...),(...),...
  • 要求表一定要有主键。
  • values中要带上所有的主键列,并且包含至少一个非主键列。
  • 对表中主键列匹配的行进行更新,将指定的非主键列的值更新进去,没有指定的非主键列的值不变。
  • 如果VALUES中指定的行在表中不存在,则忽略该行。

4. DELETE FROM

DELETE FROM用于删除记录。 语法定义:

DELETE FROM tbl_name
WHERE pk_col1 = ... and pk_col2 = ...
  • 要求表一定要有主键
  • WHERE条件只支持主键常量值条件,并且要带上所有的主键列

results matching ""

    No results matching ""