базе к номеру заказа генерить средствами sql такую беду A1234-0001. Где A1234 номер заказа, а -0001 база сама проставляет?
Ну в общем-то это — бизнес-логика, это надо руками (программой) делать, вне СУБД, либо процедурами в БД.
СУБД у тебя какая ?
misql или posgress. На данном этапе может быть любая
В PG сиквенсы есть, в MySQL нет.
но можно заколхозить :)
Ещё раз (отвлекался на завтрак) — тут ничего гуглить не надо. И нечего. Это тупо бизнес-логика. Ей не должна СУБД управлять очень сильно (можно на процедурах или триггерах, но не надо встраивать в структуру таблиц так вот явно). У тебя номер заказа состоит из двух частей — код заказа (может быть уникальный) и номер по порядку сквозной. И тебе надо составить полный номер из этих двух полей. Во-первых, их наверное надо хранить раздельно. Но это зависит от операций с ним. Во-вторых, для второго надо просто сделать счётчик в какой-то служебной таблице — типа вид заказа (документа) (PK) и последний задействованый номер. При генерации нового номера заказа надо брать последний, увеличивать и сохранять обратно. Всё в одной транзакции , естественно. А SEQUENCE тут ни при чём, нельзя его тут использовать , почти наверняка он тебе не подойдёт.
Спасибо. В целом, нет никакой проблемы по считать это вне базы. Мне казалось, что году в 15 я читал, как бд сама подставляет такие штуки по маске, но ничего не нагуглил. Решил спросить, может просто я не знаю как это называется)
Обсуждают сегодня