【问题标题】:How to get SQL statement of table data如何获取表数据的SQL语句
【发布时间】:2022-01-26 00:38:12
【问题描述】:

我有一个 SQLite 数据库。我有一个数据表。我想以 SQL INSERT INTO 语句的形式获取表中的所有数据。

例如,假设我们在表中有以下数据:

id name
1 Lion
2 Tiger

而且,我想要它们的 SQL 语句如下:

INSERT INTO table_name (id, name)
VALUES (1, "Lion"),
(2, "Tiger");

是否可以使用 SQL 从表中得到这样的结果?

【问题讨论】:

  • 标记您的特定数据库 - postgres/mysql/sql server/oracle/db2/sqllite ?一些工具可以选择将数据生成为插入语句,或者您可以编写查询来执行此操作,具体取决于您的要求。只有一个特定的表?有指定的表吗?
  • 基于 SQLite 构建的房间数据库

标签: sql sqlite


【解决方案1】:

如果您使用某种 GUI 工具,您可以查找转储选项。否则,您可以使用mysqldump

来自这个question的命令参考:

mysqldump --complete-insert --lock-all-tables --no-create-db 
--no-create-info --extended-insert --password=XXX -u XXX 
--dump-date yyy > yyy_dataOnly.sql

假设这是基于 MySQL/MariaDB 的数据库。

【讨论】:

    【解决方案2】:

    如果要将表table_name1 的所有行插入到表table_name2 中,可以使用SELECT 而不是VALUES

    INSERT INTO table_name2 (id, name)
    SELECT id, name
    FROM table_name1;
    

    如果您想要一个返回 INSERT 语句的查询,您可以使用 GROUP_CONCAT()

    SELECT 'INSERT INTO table_name(id, name) VALUES ' || 
            GROUP_CONCAT('(' || QUOTE(id) || ',' || QUOTE(name) || ')') || ';' sql
    FROM table_name;
    

    请参阅demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 2020-05-05
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 2010-10-30
      相关资源
      最近更新 更多