Автоинкрементное поле, которое не является первичным ключом
В моей таблице 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;