代码之家  ›  专栏  ›  技术社区  ›  hitek

我的SQL触发器

  •  3
  • hitek  · 技术社区  · 17 年前

    4 回复  |  直到 17 年前
        1
  •  3
  •   Peter Bailey    17 年前

    除非我不完全理解你的问题,否则你不需要触发器——只需使用数据库驱动程序的“最后插入的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的连接安全方式。

        2
  •  2
  •   achinda99    17 年前

    正如前面的答案所解释的那样,您不需要使用触发器来返回身份。您可以使用mysql_insert_id()命令,如[文档][1]中所述。

    但是,如果需要在触发器中使用新的插入id,请使用new。[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
    
        3
  •  1
  •   user64718    17 年前

    我真的不知道你在问什么。您想在数据库中插入一行并获取它被分配的id吗?如果是这样,请这样做

        4
  •  0
  •   antik    17 年前

    你不需要触发器来完成你想做的事情。

    mysql_insert_id

    此处描述: http://us2.php.net/manual/en/function.mysql-insert-id.php

    推荐文章