使用 SQL 插入多行

有几种方法可以使用单个语句插入多行,但它是否有效取决于服务器版本。
如果我们要恢复备份,我们可能需要考虑直接从命令行导入备份,因为在许多情况下这可能会更容易。

以下将适用于 MySQL,可能还有其他:

insert into table_name (column1, column2, column3) values
('data for column1', 'data for column2', 'data for column3'),
('data for column1', 'data for column2', 'data for column3'),
('data for column1', 'data for column2', 'data for column3');

如果你有一个自动递增列,它可以被排除在语句之外,因为它会在插入数据时自动递增。

带有重复键的 SQL 插入

如果我们在表上获得了唯一键或者primery_key,则可以通过使用on duplicate key 子句轻松防止重复条目。
使用此子句告诉数据库在遇到重复键时要做什么。
为了避免更新数据,我们可以重新分配列中的数据:

insert into table_name (column1, column2, column3) values('hallo', 'tiny', 'world') on duplicate key update column1=column1;

当重复键事件发生时,上面的查询将重新分配 column1 自己的值,结果不会对数据进行任何更改。
换句话说,什么也没做。
可悲的是没有“在重复键忽略”,但上面实际上具有相同的效果,并且它也应该比“插入忽略”更好

SQL Insert Into语句

可以使用 SQL 插入语句将数据加载到数据库表中。
确切的语法是:insert into tbl_name() values();。

当我们对具有主要自动增量列的表执行插入时,插入的数据行将自动获得分配的唯一 ID。
当我们想要加速 select 语句时,这很有用。
具有唯一索引的表可以通过在查询中启用 on duplicate key 子句来帮助我们防止数据重复。

将数据插入特定列:

insert into table_name (column1, column2, column3) values('hallo', 'tiny', 'world');

自动增量列(如果使用)不需要包含在插入查询中。

如果插入查询中缺少一列,则将使用默认值。
通常默认值只是“空”。
可以在创建表时定义列的默认值,或者我们也可以使用 alter table... 查询更改现有表。

要按列的顺序插入值:

insert into table_name values('data for column1', 'data for column2', 'data for column3');

示例使用小写字母来提高国际用户的可读性,但我们可以使用大写字母来突出显示关键字。
即:INSERT INTO table_name () VALUES()。
使用哪个取决于个人喜好。

日期:2020-06-02 22:17:06 来源:oir作者:oir