Автоинкрементное поле, которое не является первичным ключом - PullRequest
0 голосов
/ 19 февраля 2012

В моей таблице MySQl у меня есть два поля, id и order. id - это автоинкрементный первичный ключ, и я хочу, чтобы начальное значение order соответствовало этому, но также было доступно для редактирования, а не ключа и без ограничений уникальности. Как мой метод вставки базы данных может достичь этого? Можно ли сделать это без запроса найти последний вставленный идентификатор?

Я использую paris / idiorm, чтобы было удобно использовать решение, использующее их функции, хотя обычный SQL и php тоже подойдут.

1 Ответ

3 голосов
/ 19 февраля 2012

В MySQL (начиная с версии 5.0.2) вы можете создать триггер.

Попробуйте это на непроизводственной базе данных:

create trigger default_order_value AFTER INSERT ON orders
     UPDATE order SET order = id WHERE id = new.id;

Может работать не так, как вы хотите, но вы можете редактировать его.Это еще один пример запуска:

CREATE TRIGGER default_order
    BEFORE UPDATE ON orders
    REFERENCING NEW ROW AS n
    n.order = n.id;
...