c# - 在父表中插入值时自动在子表中生成id

标签 c# mysql

我有两个表,分别是父表和子表。现在我向父表插入一个值,自动递增 id。代码是这样的:

string query2 = "INSERT INTO printer_info(printer_ip) VALUES(@ipAddress)";
MySqlCommand cmd1 = new MySqlCommand(query2, connection);

cmd1.Parameters.AddWithValue("@ipAddress", pAddress);
cmd1.ExecuteNonQuery();

现在我的问题是,当值插入到父表中时。如果想让child表中的id自动生成怎么办?请指教。

   ID | printer_ip               printer_id | page_count
   ---------------    ------>    -----------------------
    1 | 10.0.0.0                            |

   PRIMARY KEY ID                FOREIGN KEY printer_id

最佳答案

如果你也想在子行中插入一行,就在父行创建之后,那么你可以在下一个插入语句中使用 last_insert_id()

示例:

string query2 = "INSERT INTO printer_info(printer_ip) VALUES(@ipAddress)";
MySqlCommand cmd1 = new MySqlCommand(query2, connection);

cmd1.Parameters.AddWithValue("@ipAddress", pAddress);
cmd1.ExecuteNonQuery();

string query_for_child_row = "INSERT INTO printer_queue(printer_id, page_count) 
                              VALUES( LAST_INSERT_ID(), @page_count )";
MySqlCommand cmd2 = new MySqlCommand( query_for_child_row, connection );

cmd2.Parameters.AddWithValue( "@page_count", page_count );
cmd2.ExecuteNonQuery();

关于c# - 在父表中插入值时自动在子表中生成id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23904564/

相关文章:

c# - 生成随机mac地址

c# - 如何判断元素是否与 Microsoft UI 自动化中的 PropertyCondition 匹配?

c# - 将.NET datetime转换为SQlite datetime

mysql - 在 mysql 中使用 GROUP_CONCAT 选择查询

MySQL查询结果的历史记录?

c# - OleDB INSERT 命令错误

c# - C#-与设计有关的配置问题(两个)

mysql - SQL 选择其他表中每个 id 的不同行

mysql - 将图像直接存储在数据库中还是作为base64数据存储?

mysql - 左连接似乎极大地阻碍了 SQL 查询性能