跳到主要内容

如何跨不同终端快速重建小表

·2 分钟阅读
了解如何使用复制/粘贴在不同终端之间快速重建小表及其数据,以用于开发环境。

问题

如何仅使用复制/粘贴跨不同终端快速重建表及其数据?

答案

这**不是**将数据从一个数据库迁移到另一个数据库的推荐做法,**不应**用于生产数据迁移。

这仅仅旨在作为一种快速而简陋的方式,在跨多个环境开发时重建少量数据。

  1. 使用 SHOW CREATE table 获取 CREATE TABLE 语句
SHOW CREATE TABLE cookies;

SHOW CREATE TABLE cookies

Query id: 248ec8e2-5bce-45b3-97d9-ed68edf445a5

┌─statement────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
CREATE TABLE default.cookies
(
`id` String,
`timestamp` DateTime
)
ENGINE = MergeTree
ORDER BY id
SETTINGS index_granularity = 8192
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

  1. 使用 FORMAT SQLInsert 获取数据导出
SELECT * FROM cookies FORMAT SQLInsert;

SELECT *
FROM cookies
FORMAT SQLInsert

Query id: 383759b8-69c0-4561-ab95-f8224abc0071

INSERT INTO table (`id`, `timestamp`) VALUES ('4', '2023-03-15 16:28:46')
, ('2', '2023-03-15 16:28:41')
, ('1', '2023-03-15 16:11:02'), ('1', '2023-03-15 16:11:40'), ('1', '2023-03-15 16:11:48'), ('1', '2023-03-15 16:16:05'), ('2', '2023-03-15 16:11:06'), ('3', '2023-03-15 16:11:12'), ('3', '2023-03-15 16:11:45'), ('3', '2023-03-15 16:16:08'), ('4', '2023-03-15 16:11:14'), ('4', '2023-03-15 16:11:50'), ('4', '2023-03-15 16:16:01'), ('5', '2023-03-15 16:11:18'), ('5', '2023-03-15 16:16:11')
;

15 rows in set. Elapsed: 0.023 sec.

请注意,您需要在第 2 点将名称 table 替换为实际的表名(在本例中为 cookies