首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的SQL触发器

我的SQL触发器
EN

Stack Overflow用户
提问于 2009-02-12 20:03:31
回答 4查看 513关注 0票数 3

有没有可能设置一个mysql触发器,当数据库中有插入的时候,它就会返回该记录的id号,我该如何使用php来捕获它呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-12 20:18:15

除非我没有完全理解您的问题,否则您不需要触发器-只需使用数据库驱动程序的"last inserted“功能即可。

下面是一个在PHP中使用基本mysql驱动程序的示例。

代码语言:javascript
复制
<?php

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

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

$lastId = mysql_insert_id();

这是一种连接安全的获取ID的方法。

票数 3
EN

Stack Overflow用户

发布于 2009-02-12 20:32:15

正如在前面的答案中所解释的,您不需要使用触发器来返回标识。您可以按照文档中的说明使用mysql_insert_id()命令。

但是,如果您需要在触发器中使用新的插入id,请使用NEW.identity_column_name,如下所示:

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2009-02-12 20:15:07

我不太清楚你在问什么。您是否希望在数据库中插入一行并获取分配给它的id?如果是这样,请执行以下操作

printf(“最后插入的记录id为%d\n",mysql_insert_id());

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/543000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档