【发布时间】:2022-01-10 03:06:05
【问题描述】:
我有一个包含许多创建表 ddl 的文件 master.sql。
master.sql
CREATE TABLE customers (
customer_id numeric(38) GENERATED BY DEFAULT AS IDENTITY,
email_address varchar(255) NOT NULL,
full_name varchar(255) NOT NULL
) ;
CREATE TABLE inventory (
inventory_id numeric(38) GENERATED BY DEFAULT AS IDENTITY,
store_id numeric(38) NOT NULL,
product_id numeric(38) NOT NULL,
product_inventory numeric(38) NOT NULL
) ;
我想将此文件拆分为单独的文件 - 每个文件用于一个表。为此,我使用rubin's 解决方案here。
这是我使用的 awk 命令。
awk '/CREATE TABLE/{f=0 ;n++; print >(file=n); close(n-1)} f{ print > file}; /CREATE TABLE/{f=1}' master.sql
在执行 awk 命令时,会生成带有表数且没有任何扩展名的文件。尝试使用此article联系
创建每个 sql 文件时,我想将文件名更改为表名。
例如。
-
customers.sql
-
inventory.sql
我正在尝试使用 awk 命令从 master.sql 中获取表名。迭代master.sql时是否可以获取表名。
有没有办法解决这个问题?
【问题讨论】: