我要開始輸入我想要的東西。數據庫輸入副本
所以,我有一個表,其中每一行自動獲得一個新的ID,併爲每個新創建的行在那裏,我希望該ID也被放入另一個表到特定的列。
數據庫結構:事件
(這是表我想要的ID從複製)
事件ID |其它更多的列
的 -
數據庫結構:jointable (這是我想要的「事件ID」複製到表)
事件ID |更多專欄。
所以,我希望我的EventID在我的表「事件」中放入事件時也會自動放入我的連接表中。
我要開始輸入我想要的東西。數據庫輸入副本
所以,我有一個表,其中每一行自動獲得一個新的ID,併爲每個新創建的行在那裏,我希望該ID也被放入另一個表到特定的列。
數據庫結構:事件
(這是表我想要的ID從複製)
事件ID |其它更多的列
的 -
數據庫結構:jointable (這是我想要的「事件ID」複製到表)
事件ID |更多專欄。
所以,我希望我的EventID在我的表「事件」中放入事件時也會自動放入我的連接表中。
使用返回上次插入的自動生成ID的函數。
在的MySql它LAST_INSERT_ID()
在SQL服務器它SCOPE_IDENTITY,IDENT_CURRENT,@@IDENTITY
例如在MySQL中,你可以做這樣的事情
INSERT INTO event (column1,column2...) VALUES (...);
SET @last_event_id = LAST_INSERT_ID();
INSERT INTO jointable (EventID, column1, column2...) VALUES (@last_event_id, ...);
UPDATE: 要那麼從客戶端(php + mysqli)使用mysqli_insert_id()
你在這種情況下,代碼如下
$db = mysqli_connect(...);
...
$query = "INSERT INTO event (column1, column2...) VALUES (...)";
mysql_query($query);
$last_event_id = mysqli_insert_id($db);
$query = "INSERT INTO jointable (EventID, column1, column2...) VALUES ($last_event_id, ...)";
mysql_query($query);
您正在使用哪個數據庫
它的MySQL我正在使用。我會看看「LAST_INSERT_ID()」,看看我能否得到它的工作,謝謝。 – Marcus 2013-02-11 08:26:12
嗯,我不能讓它開始工作,很快搜索了谷歌,並沒有發現任何我明白如何使用。我會發佈一個鏈接與我所有的mysql查詢,並希望你能告訴我som的方向,當你知道它是如何在我的代碼結構。下面是我的代碼:pastebin.com/nqmcSJ74 – Marcus 2013-02-11 10:28:05
查看更新的答案。不要使用'mysql_'擴展名,因爲它已被棄用。通過[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)使用[預先準備的語句](http://goo.gl/vn8zQ)。您的代碼易受sql注入攻擊。清理所有用戶輸入並使用準備好的語句來避免它。 – peterm 2013-02-11 12:31:04
? – 2013-02-11 08:09:58
您可以使用「插入式」觸發器,但也許有更好的數據庫設計,可以避免將相同的數據放在兩個地方?你究竟想要完成什麼? – 2013-02-11 08:11:54
@Marcus - 您正在使用哪種RDBMS? SQL服務器或MySQL? – 2013-02-11 08:17:39