该工具mysqlpump在每个表操作前面加上数据库名称,如下所示:
INSERT INTO `database`.`table` --
Run Code Online (Sandbox Code Playgroud)
这使得出口的使用相当有限。有没有办法跳过数据库前缀?这是有道理的,因为我观察到许多情况下它是一个限制而不是一个功能。
由于没有找到一个明智的方法来做到这一点,我sed在导出上尝试了一个肮脏的黑客:
sed -e "s/\`$DB\`.//g"
Run Code Online (Sandbox Code Playgroud)
这对于小额出口非常有效。然而,在更复杂的数据库上,这最终会导致错误。显然,反引号数据库不能可靠地用作专门用作语句前缀的字符串。
小智 -1
您使用哪些选项mysqldump?默认情况下,表名前没有数据库名前缀。例如mysqldump -uxx -pxxx -h xxx -P xxx --all-databases > db.sql
mysqldump -uxx -pxxx -h xxx -P xxx db table > table.sql
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |