通常我在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 + "'";
但它不起作用。
答案 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 ( ... )
如果sales
有auto_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)。
您可以在单个事务中放置多个查询,以确保它们既成功又不成功。以上问题就是一个例子。