1

もう1つは正解で、問題を解決するための新しいアイデアが得られたので(これは、以下の場合とは異なります)、新しいスレッドを開始します。

同じ例で、cds.idはAUTO_INCREMENTであり、これら2つのテーブルには実際には関係がありません。生成されたIDをlanguagesテーブルにポストする方法はありますか?

Table for CDs (cds):
id | type
-----------------------
1  | CD  
2  | LP  
3  | CD  

Table for names:
cd_id | language | name
-----------------------
1     | fi       | AAA
1     | de       | AAACHTUNG
3     | en       | CCC

これで、SELECTは本当にシンプルになり、構造が改善されます。CDを作成するためのeフォームがある場合は、次のようになります。

<input... > = the name -> 'best of XX'
<select...> = language -> 'en'
<select...> = type     -> 'CD' 

投稿を行いますが、複数の挿入を行うにはどうすればよいですか?これらのテーブルへの挿入は...

INSERT INTO cds ('', 'CD');
INSERT INTO languages ('*the generated id in table above*', 'en', 'best of XX');
4

2 に答える 2

3

MySQLには、最新LAST_INSERT_ID()のの値を返すものがあります。AUTO_INCREMENTINSERT

INSERT INTO languages (LAST_INSERT_ID(), 'en', 'best of XX');

ほとんどの言語には、この関数のラッパーがあります。たとえば、PHPではmysqli_insert_id()

于 2012-11-09T18:23:19.177 に答える
0

試す

INSERT INTO languages (last_insert_id(), 'en', 'best of XX');

Last_Insert_Idは、自動生成されたID列の最後の自動増分値を取得します

于 2012-11-09T18:24:22.753 に答える