|
MySQL вопроса тред
подскажите как провернуть такое что мол инкримент только средствами языка sql. есть такое INT поле "номер счета" и нужно чтобы оно автоматом увеличивалось на один допустим. я хочу это сделать на уровне sql через default value
TABLE ololo( name INT DEFAULT (select max(*) as...)+1 ) ну то есть типа того, короче как инкриментировать обычное поле которое не ключ |
Зачем же номер счета делать полем не уникальным и без авто инкремента?
|
laimas, потому что инкримент можно поставить только на PK а а он стоит естественно на id, а id система исопльзует для своих внутренних нужд. так же номер счета должен отличаться от id
|
Цитата:
|
Цитата:
|
UIjs, сперва надо понять что первично, курица или яйцо )
Что такое номер счета, счета чего? Почему потребовался номер по порядку? Это просто порядок или же уникальность? |
Ну, можно создать таблицу ORDERS и получить оттуда уникальные значения. Ну, будет в ней 1 столбец counter с аuto_increment-om и всё.
Тыркаем в ORDERS, получили уник-автоинкремент, вставили в основную таблицу ololo у которого свой автоинкремент. |
В OrientDB например нет autoincrementa в привычном понимании. Зато есть такой, как я описал выше.
|
Gozar, ух ты хитрый)), ха) костыль конечно но работать будет. ладно, запилю в двигле автоинкриментацию или какую нить функцию на mysqk нафурычу. в принципе можно простым селектом делать типа считать максимальное значение и бла бла бла и подставлять в другой селект. но проще этио пыхой делать. храня где то таблицу последних значений максимальных кастомных инкриментов просто. и все.
ладно |
Цитата:
|
Часовой пояс GMT +3, время: 01:34. |
|