sqlite 如何获取表数据的SQL语句

wlwcrazw  于 2023-01-26  发布在  SQLite
关注(0)|答案(3)|浏览(178)

我有一个SQLite数据库。我有一个数据表。我想用SQL INSERT INTO语句获取表中的所有数据。
例如,假设我们在表中有以下数据:
| 身份证|姓名|
| - ------|- ------|
| 1个|狮子|
| 第二章|老虎|
并且,我希望他们的SQL语句如下:

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

有可能像这样从table上拿下来吗?

deyfvvtc

deyfvvtc1#

如果使用某种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的数据库。

umuewwlo

umuewwlo2#

如果你想把表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

w51jfk4q

w51jfk4q3#

您可以使用StringBuilder构建它:

val builder = StringBuilder()

builder.append("INSERT INTO ")
   .append(TABLE_NAME)
   .append(" (id, name) VALUES ")

entities.forEach { entity -> 
  builder.append("\n(")
     .append(entity.id)
     .append(", \"")
     .append(entity.name)
     .append("\"),")
}

相关问题