Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   MySQL вопроса тред (https://javascript.ru/forum/offtopic/55505-mysql-voprosa-tred.html)

UIjs 30.04.2015 22:48

MySQL вопроса тред
 
подскажите как провернуть такое что мол инкримент только средствами языка sql. есть такое INT поле "номер счета" и нужно чтобы оно автоматом увеличивалось на один допустим. я хочу это сделать на уровне sql через default value

TABLE ololo(
name INT DEFAULT (select max(*) as...)+1
)

ну то есть типа того, короче как инкриментировать обычное поле которое не ключ

laimas 01.05.2015 08:40

Зачем же номер счета делать полем не уникальным и без авто инкремента?

UIjs 01.05.2015 19:16

laimas, потому что инкримент можно поставить только на PK а а он стоит естественно на id, а id система исопльзует для своих внутренних нужд. так же номер счета должен отличаться от id

Makarov 01.05.2015 19:33

Цитата:

инкримент можно поставить только на PK
На непервичный ключ тоже вроде можно автоинкремент вешать

laimas 01.05.2015 20:33

Цитата:

Сообщение от Makarov (Сообщение 369000)
На непервичный ключ тоже вроде можно автоинкремент вешать

На уникальный можно, а но в двух полей с автоикрементом в таблице не может быть, как и первичного с уникальным.

laimas 01.05.2015 20:37

UIjs, сперва надо понять что первично, курица или яйцо )
Что такое номер счета, счета чего? Почему потребовался номер по порядку? Это просто порядок или же уникальность?

Gozar 01.05.2015 20:41

Ну, можно создать таблицу ORDERS и получить оттуда уникальные значения. Ну, будет в ней 1 столбец counter с аuto_increment-om и всё.

Тыркаем в ORDERS, получили уник-автоинкремент, вставили в основную таблицу ololo у которого свой автоинкремент.

Gozar 01.05.2015 20:44

В OrientDB например нет autoincrementa в привычном понимании. Зато есть такой, как я описал выше.

UIjs 01.05.2015 21:44

Gozar, ух ты хитрый)), ха) костыль конечно но работать будет. ладно, запилю в двигле автоинкриментацию или какую нить функцию на mysqk нафурычу. в принципе можно простым селектом делать типа считать максимальное значение и бла бла бла и подставлять в другой селект. но проще этио пыхой делать. храня где то таблицу последних значений максимальных кастомных инкриментов просто. и все.

ладно

Gozar 01.05.2015 22:25

Цитата:

Сообщение от UIjs
костыль конечно

Для мускуля, возможно. Там много костылей :)


Часовой пояс GMT +3, время: 13:20.