0

通常、1 つのテーブル (販売) の例で MySql にデータを挿入します。

string query = "INSERT INTO sales (price, user, date) " +
                             "VALUES(" +
                             "'" + txtQuant.Text + "'," +
                             "'" + txtLog.Text + "'," +
                              "NOW())";

しかし、今は考えを変えて、別のテーブルを個別に作成することにしました。このテーブルには、列の価格の設定という名前を付けます。これは初めてなので、どうすればいいのかわかりません。

これを試しました。

string query = "INSERT INTO sales (user, date), settings (price) " +
                             "VALUES(" +
                             "'" + txtLog.Text + "'," +
                              "NOW())", "'" + txtQuant.Text + "'";

しかし、うまくいきません。

4

4 に答える 4

1

2つのクエリでそれを行うだけです

INSERT INTO sales (user, date) values('user', now()); 
INSERT INTO settings (price) values(100);
于 2013-04-09T09:26:04.387 に答える
0

INSERT は mysql の 1 つのテーブルにしかデータを挿入できないため、1 つのクエリでは不可能です。次のいずれかを実行できます

  • これを2つのクエリとして記述し、バッチとして実行します
  • 2 つの挿入コマンドを実行するストアド プロシージャを作成する

両方のクエリがデータを書き込むことを確認する必要がある場合は、これらの挿入をトランザクションでラップできます

それらのクエリを使用する

$query1 ="INSERT INTO sales (user, date) values(.....)"; 
$query2 ="INSERT INTO settings (price) values(......)";
于 2013-04-09T09:26:34.643 に答える
0

2 つのクエリを分離する必要があります。

INSERT INTO sales (user, date) VALUES ( ... )

に続く

INSERT INTO settings (price) VALUES ( ... )

主キーがある場合salesは、2 番目のクエリで使用して、挿入後に参照できます。auto_incrementLAST_INSERT_ID()sales.id

INSERT INTO settings (sale_id, price) VALUES (LAST_INSERT_ID(), ... )

このような相関クエリは、トランザクション内に配置するのが最適であることに注意してください。

于 2013-04-09T09:27:24.317 に答える
0

MySQL は、単一のクエリでの複数のテーブルへの挿入をサポートしていません ( sql - insert into multiple tables in one query を参照してください)。

複数のクエリを 1 つのトランザクションに配置して、両方が成功するか、どちらも成功しないかを確認できます。上記の質問には、この例があります。

于 2013-04-09T09:27:31.067 に答える