2013-04-09 39 views
0

正常情况下,我在一个表(销售)示例中的MySql中插入数据。如何使用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 + "'"; 

但它不起作用。

+1

为什么不使用两个querys? – Vucko 2013-04-09 09:24:43

+0

是的,我会尝试。 – Jayseer 2013-04-09 09:26:05

+0

@Jayseer如果用分号分隔语句,可以将它们作为“一个查询”执行。 代码: INSERT INTO tbl(field,field)VALUES(val,val); INSERT INTO tbl2(field2,field2)VALUES(val2,val2);' – 2013-04-09 09:28:42

回答

1

只是做了2个查询

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

这是不可能使用一个查询的INSERT只能在mysql中插入数据到一个表。您可以

  • 写这两个查询,并执行它们作为一批
  • 创建一个能够执行存储过程的两个插入命令

你可以用这些刀片的交易,如果你需要确保这两个查询将写入数据

使用这些查询

$query1 ="INSERT INTO sales (user, date) values(.....)"; 
$query2 ="INSERT INTO settings (price) values(......)"; 
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(), ...) 

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

相关问题