gpt4 book ai didi

mysql - 将行从 .sql 文件添加到 mysql 表中

转载 作者:行者123 更新时间:2023-11-28 23:28:26 25 4
gpt4 key购买 nike

我有一个关于如何将 .sql 文件插入到已经包含大量数据的 MySQL 表中的问题?

我的 .sql 文件看起来像(1200 行):

--
-- Descriptif plan comptable SYSCOHADA (utf-8)
--

INSERT INTO llx_accounting_system (rowid, pcg_version, fk_pays, label, active) VALUES (10,'SYSCOHADA', 49, 'Plan comptable Ouest-Africain', 1);

INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15000,'SYSCOHADA','CAPITAUX','XXXXXX','1',0,"Capital",'1');
INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15001,'SYSCOHADA','CAPITAUX','XXXXXX','101',15000,"Capital social",'1');
INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15002,'SYSCOHADA','CAPITAUX','XXXXXX','1011',15001,"Capital souscrit, non appele);

我的 MySQL 表如下所示:

mysql> describe llx_accounting_account ;
+----------------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+-------------------+-----------------------------+
| rowid | int(11) | NO | PRI | NULL | auto_increment |
| entity | int(11) | NO | | 1 | |
| datec | datetime | YES | | NULL | |
| tms | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| fk_pcg_version | varchar(32) | NO | MUL | NULL | |
| pcg_type | varchar(20) | NO | | NULL | |
| pcg_subtype | varchar(20) | NO | | NULL | |
| account_number | varchar(32) | NO | MUL | NULL | |
| account_parent | varchar(32) | YES | | NULL | |
| label | varchar(255) | NO | | NULL | |
| fk_user_author | int(11) | YES | | NULL | |
| fk_user_modif | int(11) | YES | | NULL | |
| active | tinyint(4) | NO | | 1 | |
+----------------+--------------+------+-----+-------------------+-----------------------------+
13 rows in set (0.00 sec)

我的 MySQL 表不是空的。已经有数据,我想在我的数据表之后添加我的 .sql 文件。

我没有执行这个命令,因为我认为它是错误的:

LOAD DATA LOCAL INFILE 'data_3.9.sql'
INTO TABLE llx_accounting_account
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'

你有解决办法吗?

谢谢你:)

-------------------------------------------- ------------------------------------

解决方案:

通过@RakeshKumar 和@PaulF 的评论,我找到了解决问题的方法:

1) 我删除了 fk_pcg_version = 'SYSCOHADA' 的所有行:

delete from llx_accounting_account where fk_pcg_version = 'SYSCOHADA' ;

2) 我导入了 .sql 文件:

mysql -u root -p****** dolibarr < data_3.9.sql

3) 我修改了一条信息,因为 account_number 是 1 而不是 10,其中 rowid = 15000 :

UPDATE llx_accounting_account SET account_number = 10  WHERE rowid=15000 ;

看起来不错 :)

谢谢;)

最佳答案

使用以下方式导入文件

mysql -u username -p'password' dbname < filename.sql

您的导入没有成功,因为您的表中已经有相同的旧 SYSCOHADA 行。

您可以删除 fk_pcg_version = 'SYSCOHADA' 的所有行,然后再次导入已更正的文件。

关于mysql - 将行从 .sql 文件添加到 mysql 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38322617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com