如何使用MySql数据库在不同的表中插入数据?

时间:2013-04-09 09:22:47

标签: mysql database insert

通常我在MySql中的一个表(sales)示例中插入数据。

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 个答案:

答案 0 :(得分:1)

只需2次查询即可

INSERT INTO sales (user, date) values('user', now()); 
INSERT INTO settings (price) values(100);

答案 1 :(得分:0)

一个查询是不可能的,因为INSERT只能将数据插入mysql中的一个表。你可以

  • 将其写为两个查询并以批处理方式执行
  • 创建一个执行两个插入命令
  • 的存储过程

如果需要确保两个查询都将写入数据

,则可以将这些插入包装在事务中

使用这些查询

$query1 ="INSERT INTO sales (user, date) values(.....)"; 
$query2 ="INSERT INTO settings (price) values(......)";

答案 2 :(得分:0)

您必须将两个查询分开:

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

其次是

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

如果salesauto_increment主键,您可以在第二个查询中使用LAST_INSERT_ID()在插入后引用sales.id

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

请注意,像这样的相关查询最好放在事务中。

答案 3 :(得分:0)

MySQL不支持在单个查询中插入多个表(请参阅sql - insert into multiple tables in one query)。

您可以在单个事务中放置多个查询,以确保它们既成功又不成功。以上问题就是一个例子。