Мой SQL триггеры - PullRequest
       13

Мой SQL триггеры

3 голосов
/ 12 февраля 2009

Можно ли установить триггер mysql, который запускает номер идентификатора этой записи, когда происходит вставка в базу данных И как мне перехватить это с помощью php?

Ответы [ 4 ]

3 голосов
/ 12 февраля 2009

Если я не до конца понимаю ваш вопрос, вам не нужен триггер для этого - просто используйте функцию "последний вставленный идентификатор" вашего драйвера базы данных.

Вот пример использования базового драйвера mysql в PHP.

<?php

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

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

$lastId = mysql_insert_id();

Это безопасный для соединения способ получения идентификатора.

2 голосов
/ 12 февраля 2009

Как объяснялось в предыдущих ответах, вам не нужно использовать триггер для возврата личности. Вы можете использовать команду mysql_insert_id (), как описано в [документации] [1].

Однако, если вам нужно использовать новый идентификатор вставки в триггере, используйте 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
1 голос
/ 12 февраля 2009

Я не совсем уверен, что вы спрашиваете. Вы хотите вставить строку в базу данных и получить идентификатор, которому она была назначена? Если это так, сделайте это

printf («Последняя вставленная запись имеет идентификатор% d \ n», mysql_insert_id ());

0 голосов
/ 12 февраля 2009

Вам не нужен триггер, чтобы выполнить то, что вы пытаетесь сделать.

Простой вызов PHP mysql_insert_id вернет идентификатор, сгенерированный из последнего выполненного запроса INSERT.

Описано здесь: http://us2.php.net/manual/en/function.mysql-insert-id.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...