2009-02-12 23 views
3

是否有可能建立一個mysql觸發器,在數據庫中插入數據時觸發該記錄的id號,以及如何捕獲使用php?我的SQL觸發器

回答

3

除非我不完全理解你的問題,否則你不需要觸發器 - 只需使用數據庫驅動程序的「最後插入的ID」功能即可。

下面是一個在PHP中使用基本mysql驅動程序的示例。

<?php 

$db = mysql_connect('localhost', 'user', 'pass'); 

$result = mysql_query("insert into table (col1, col2) values ('foo', 'bar')", $db); 

$lastId = mysql_insert_id(); 

這是獲取ID的連接安全方式。

1

我不確定你在問什麼。你是否想要在數據庫中插入一行並獲取它分配的ID?如果是這樣做

printf(「最後插入的記錄具有ID%d \ n」,mysql_insert_id());

2

正如在以前的答案解釋,你不需要使用觸發器返回的身份。您可以使用[documentation] [1]中所述的mysql_insert_id()命令。

但是如果你需要使用新的插入ID在觸發器,利用新的[identity_column_name]如下:

CREATE TABLE temp (
    temp_id int auto_increment, 
    value varchar(10), 
    PRIMARY_KEY(temp_id) 
); 

CREATE TRIGGER after_insert_temp AFTER INSERT ON temp 
FOR EACH ROW 
BEGIN 
    DECLARE @identity; 
    SET @identity = NEW.temp_id; 
    -- do something with @identity 
END