在mysqldump中,在CREATE TABLE IF NOT EXIST之前添加TRUNCATE TABLE命令

9

我需要帮助,我有这个命令:

mysqldump -u myusername -pmypassword --skip-add-drop-table --no-data --single-transaction database_name | sed 's/CREATE TABLE/CREATE TABLE IF NOT EXISTS/g' > db.sql

我想在我的mysqldump中添加CREATE TABLE IF NOT EXISTS,但我还想在CREATE TABLE IF NOT EXISTS命令之前添加TRUNCATE TABLE命令,应该怎么做呢?


你想要做什么?ignore-table 似乎是一个更直接的方法?https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_ignore-table - frederj
我正在尝试导入没有结构的数据。非常明显。 - AnrDaemon
1个回答

12

在sed中,只需稍微修改正则表达式:

mysqldump -u myusername -pmypassword --skip-add-drop-table --no-data --single-transaction database_name | sed -r 's/CREATE TABLE (`[^`]+`)/TRUNCATE TABLE \1; CREATE TABLE IF NOT EXISTS \1/g' > db.sql

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接