|
30.04.2015, 22:48
|
Профессор
|
|
Регистрация: 24.04.2015
Сообщений: 183
|
|
MySQL вопроса тред
подскажите как провернуть такое что мол инкримент только средствами языка sql. есть такое INT поле "номер счета" и нужно чтобы оно автоматом увеличивалось на один допустим. я хочу это сделать на уровне sql через default value
TABLE ololo(
name INT DEFAULT (select max(*) as...)+1
)
ну то есть типа того, короче как инкриментировать обычное поле которое не ключ
|
|
01.05.2015, 08:40
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Зачем же номер счета делать полем не уникальным и без авто инкремента?
|
|
01.05.2015, 19:16
|
Профессор
|
|
Регистрация: 24.04.2015
Сообщений: 183
|
|
laimas, потому что инкримент можно поставить только на PK а а он стоит естественно на id, а id система исопльзует для своих внутренних нужд. так же номер счета должен отличаться от id
|
|
01.05.2015, 19:33
|
|
Профессор
|
|
Регистрация: 08.07.2013
Сообщений: 212
|
|
Цитата:
|
инкримент можно поставить только на PK
|
На непервичный ключ тоже вроде можно автоинкремент вешать
|
|
01.05.2015, 20:33
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Makarov
|
На непервичный ключ тоже вроде можно автоинкремент вешать
|
На уникальный можно, а но в двух полей с автоикрементом в таблице не может быть, как и первичного с уникальным.
|
|
01.05.2015, 20:37
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
UIjs, сперва надо понять что первично, курица или яйцо )
Что такое номер счета, счета чего? Почему потребовался номер по порядку? Это просто порядок или же уникальность?
|
|
01.05.2015, 20:41
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Ну, можно создать таблицу ORDERS и получить оттуда уникальные значения. Ну, будет в ней 1 столбец counter с аuto_increment-om и всё.
Тыркаем в ORDERS, получили уник-автоинкремент, вставили в основную таблицу ololo у которого свой автоинкремент.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
01.05.2015, 20:44
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
В OrientDB например нет autoincrementa в привычном понимании. Зато есть такой, как я описал выше.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
01.05.2015, 21:44
|
Профессор
|
|
Регистрация: 24.04.2015
Сообщений: 183
|
|
Gozar, ух ты хитрый)), ха) костыль конечно но работать будет. ладно, запилю в двигле автоинкриментацию или какую нить функцию на mysqk нафурычу. в принципе можно простым селектом делать типа считать максимальное значение и бла бла бла и подставлять в другой селект. но проще этио пыхой делать. храня где то таблицу последних значений максимальных кастомных инкриментов просто. и все.
ладно
|
|
01.05.2015, 22:25
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от UIjs
|
костыль конечно
|
Для мускуля, возможно. Там много костылей
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
|
|