Автоинкрементное поле, которое не является первичным ключом

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

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

1 ответ

В 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;
Другие вопросы по тегам