【问题标题】:How to insert multiple rows in mysql如何在mysql中插入多行
【发布时间】:2020-02-29 21:04:24
【问题描述】:

我在 mysql 中有一个表名 :: users 和 id 和 name ,id 是自动递增的主键,名称是 varchar(50) 现在我有一堆几乎 70 的唯一名称,我应该如何插入它总的来说,我知道基本的陈述,但我没有找到与这个问题最相关的东西

mysql> desc 用户;

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+

【问题讨论】:

  • 您的唯一姓名数据行在哪里?
  • 名称在列中,我没有使其唯一,但我检查了它的唯一列表

标签: mysql insert-update


【解决方案1】:

如果您有想要在文件中插入的所有信息,您可以使用LOAD DATA INFILE

LOAD DATA INFILE 'InfoToBeInsertedInsideDB.csv' 
INTO TABLE tbl_name
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

csv 看起来像:

【讨论】:

    【解决方案2】:

    对不起,对我来说,这很简单,只插入用户(名称)值(“name1”),(“name2”);

    【讨论】:

      【解决方案3】:

      MySQL docs 说:

      使用 VALUES 语法的 INSERT 语句可以插入多行。为此,请包含多个以逗号分隔的列值列表,列表括在括号内并以逗号分隔。示例:

      INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
      

      您也可以使用Insert ... Select ... 语法:

      INSERT INTO tbl_name (a,b,c)
      SELECT a,b,c
      FROM ...
      

      【讨论】:

      • 我知道这种方法,但问题是我必须每次插入表 (id,name) 值 (1,"vk"),(2,gab)...像这样,所以我需要添加它 70 次
      • 好吧,如果它只是 70,我会使用正则表达式或宏来创建正确的 SQL 字符串。此外,某些编辑器具有“列模式”(通常是 Alt 鼠标拖动),可以简化手动格式化。
      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 2011-10-16
      • 1970-01-01
      • 2015-01-05
      相关资源
      最近更新 更多