0

同じフィールドを持つ 2 つのデータベースがあるとします。
最初のデータベースはデータのエクスポート用で、
2 番目のデータベースはコピーとして機能し、データベースを持っています

データベース 1 は、PHP スクリプトから出力されたファイル形式 csv でデータベースをエクスポートします。
データベース 2 は、php スクリプトからデータベースをインポートします。

各データベースには、外部キーと関係する 2 つのテーブルがあります。

table_transaction

create table `table_transaction` (
    `id` int auto_increment primary key
    `date` DATE default now()
) engine = innoDB;

サンプルデータ

id | date 
1  | 2012-12-31
2  | 2012-12-30
3  | 2012-12-29

table_transaction_product

create table `table_transaction_product` (
    `id` int auto_increment primary key
    `product` string NOT NULL default '' /* Product Name */
    `fk_transaction` int auto_increment NOT NULL

     foreign key (`fk_transaction`)
         references table_transaction(`id`)
         on update cascade
         on delete cascade
) engine = innoDB;

サンプルデータ

id | product     | fk_transaction
1  | shampoo     | 1
2  | soap        | 1
3  | conditioner | 1

これは、データベース 1 からエクスポートされた CSV のサンプルであり、トランザクション ID 1 をエクスポートするテーブル 2 にインポートされます。

insert into table_transaction (id, date) values (1, '2012-12-31');
insert into table_transaction_product (id, product, fk_transaction) 
    values 
        (1, 'shampoo', 1),
        (2, 'soap', 1),
        (3, 'conditioner', 1)

質問両方の表がある
ので。テーブルを手動で挿入しても問題はありませんか。auto_increment mysql システムをクラッシュさせますか? しかし、ID を入力せずに mysql に決定させると、外部キーが一致しなくなります。私は何をすべきか?IDauto_incrementid

ありがとうございました。

4

1 に答える 1

1

問題は発生しないはずですが、2番目のデータベースのテーブル定義を変更してauto_incrementフラグを削除することをお勧めします。

于 2012-08-30T17:19:29.530 に答える