我正在尝试使用此命令行将.sql文件导入MySQL
mysql -u username -p databasename < path/myfile.sql
这是myfile.sql的示例
INSERT INTO mytable (‘id’,’isDeleted’,’amount’,’date’,’description’,’description_clean’,’isDebit’,’account_id’,’user_uuid’) VALUES (3798,'0',35,'0000-00-00','test','test','1',108,'021752f8-7194-4a4b-8919-fb8216ecba07');
INSERT INTO mytable (‘id’,’isDeleted’,’amount’,’date’,’description’,’description_clean’,’isDebit’,’account_id’,’user_uuid’) VALUES (3799,'0',9.4,'2018-05-02','CB Frichti','CB Frichti','1',108,'316a3da6-821b-42c8-80ea-3c1ac437484e');
INSERT INTO mytable (‘id’,’isDeleted’,’amount’,’date’,’description’,’description_clean’,’isDebit’,’account_id’,’user_uuid’) VALUES (3800,'0',50,'0000-00-00','test','test','1',108,'316a3da6-821b-42c8-80ea-3c1ac437484e');
我的文件包含一些日期,但其中一些是错误的日期0000-00-00
。因此,以上命令返回错误。
什么是最佳导入方式?我应该删除日期错误的行吗?有没有办法只导入正确的导入行,而忽略有错误的行?
感谢您的帮助
答案 0 :(得分:4)
如here
所述您可以在--force (-f)
导入中使用mysql
标志。 MySQL不会停止,而是会继续并将错误记录到控制台。
例如:
mysql -u username -p -f -D path/myfile.sql < path/myfile.sql
将无效值替换为默认值(例如1900-01-01
)不是一个好习惯,您应该改用NULL
答案 1 :(得分:-1)
您让我感到困惑的是,为什么这里有2个sql文件,所以很难得到任何真正的帮助,我想要一个只需要在需要时导入并创建数据库和表的衬板,只需提供sql文件,我就希望这样做变成脚本,因为每次都很难做到!