我有一个SQLite数据库。我有一个数据表。我想用SQL INSERT INTO语句获取表中的所有数据。例如,假设我们在表中有以下数据:| 身份证|姓名|| - ------|- ------|| 1个|狮子|| 第二章|老虎|并且,我希望他们的SQL语句如下:
INSERT INTO table_name (id, name) VALUES (1, "Lion"), (2, "Tiger");
有可能像这样从table上拿下来吗?
deyfvvtc1#
如果使用某种GUI工具,可以查找转储选项,否则可以使用mysqldump。此question的命令参考:
mysqldump
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的数据库。
umuewwlo2#
如果你想把表table_name1的所有行插入到表table_name2中,你可以使用SELECT代替VALUES:
table_name1
table_name2
SELECT
VALUES
INSERT INTO table_name2 (id, name) SELECT id, name FROM table_name1;
如果希望查询返回INSERT语句,可以使用GROUP_CONCAT():
INSERT
GROUP_CONCAT()
SELECT 'INSERT INTO table_name(id, name) VALUES ' || GROUP_CONCAT('(' || QUOTE(id) || ',' || QUOTE(name) || ')') || ';' sql FROM table_name;
请参见demo。
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("\"),") }
3条答案
按热度按时间deyfvvtc1#
如果使用某种GUI工具,可以查找转储选项,否则可以使用
mysqldump
。此question的命令参考:
假设这是针对基于MySQL/MariaDB的数据库。
umuewwlo2#
如果你想把表
table_name1
的所有行插入到表table_name2
中,你可以使用SELECT
代替VALUES
:如果希望查询返回
INSERT
语句,可以使用GROUP_CONCAT()
:请参见demo。
w51jfk4q3#
您可以使用StringBuilder构建它: