|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
Еще один вопрос связанный уже с boolean полем: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
в тройке d.flag_pay стало boolean и что я не выдумываю, а case с boolean не дружит. Как победить? также как преобразовать конструкции вида: Код: sql 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2016, 14:20 |
|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
Shaman2, потому что boolean автоматически не конвертируется в 1 и 0. BOOLEAN тип может принимать значения {TRUE | FALSE |UNKNOWN | NULL}. поэтому варианта 2 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и более короткий Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2016, 14:31 |
|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
Симонов Денисвроде защиты от распространённой ошибки админов тем не менее, этот самый default на вновь созданном столбце вводит в заблуждение. Если после этого посмотреть записи, то столбца-то по факту в виде данных нет, но выводиться будет default. Т.е. как бы видно, что столбец заполнен. Но как я понимаю, именно в случае бэкапа в бэкап как раз будет записан default, а не "пусто". И restore спасен, и программиста обдурили :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2016, 14:36 |
|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
kdvСимонов Денисвроде защиты от распространённой ошибки админов тем не менее, этот самый default на вновь созданном столбце вводит в заблуждение. Если после этого посмотреть записи, то столбца-то по факту в виде данных нет, но выводиться будет default. Т.е. как бы видно, что столбец заполнен. Но как я понимаю, именно в случае бэкапа в бэкап как раз будет записан default, а не "пусто". И restore спасен, и программиста обдурили :-) ага, только обычно по этой колонке строится foreign key и тут наличие дефаулт может привести к другой ошибке. Я кстати заметил что при alter column этот самый default можно убрать. попутно еще один вопрос задам: если домен например integer, никак нельзя alter column сделать с integer на домен или с домена на integer? мне быстрее создать второй столбец, но не всегда это реально при наличии зависимостей ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2016, 14:47 |
|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
Shaman2ага, только обычно по этой колонке строится foreign key и тут наличие дефаулт может привести к другой ошибке. Если я собираюсь добавить not null столбец на который будет повешен FK, то я задам такое значение по умолчанию которое есть в таблице. Shaman2Я кстати заметил что при alter column этот самый default можно убрать. можно, и в этом случае приходим к тому что было до 3.0 с невосстановимыми бекапами. Ксати кого не устраивает default всегда можно сделать что-то типа такого Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Shaman2 если домен например integer, никак нельзя alter column сделать с integer на домен или с домена на integer? Код: plaintext
не пробовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2016, 15:07 |
|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
Симонов Денис Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Для понимания, а не лучше ли в одной транзакции, что-бы потом не обнаружить, уже вставленных другой транзакцией, дефолтных значений? p.s. конечно идеально данную операцию в монопольном режиме проделывать, но мало ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2016, 23:16 |
|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
Hello, Nikolayv81! You wrote on 1 декабря 2016 г. 11:59:43: Nikolayv81> Для понимания, а не лучше ли в одной транзакциинельзя. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2016, 12:01 |
|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
NikolayV81а не лучше ли в одной транзакции DDL не всегда выполняется при выполнении самого оператора DDL. Одни запросы выполняются сразу, другие выполняются только по commit (например, создание индексов), третьи выполняются частями - при выполнении оператора и по commit (создание pk/fk/unique constraints). Как именно выполняется конкретный ddl - точно знают только разработчики. От них рекомендация - ddl выполнять или в режиме автокоммита, или явно делать коммит после каждого оператора ddl. Тут есть исключения, конечно, например для грантов. Гранты можно и в одной транзакции забабахать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2016, 13:31 |
|
ANN Вышел Firebird 3.0!
|
|||
---|---|---|---|
#18+
Честно говоря, напрашивается хрень, аналогичная https://en.wikipedia.org/wiki/Memory_barrier Какой-нибудь exclusive lock в рамках соединения. Или ещё лучше, если возможно, в рамках всей БД. При начале выполнения DDL - выставляться, после полного выполнения - сниматься. Если какой-то DDL выполнен не полностью, то следующий DDL просто не пройдет пока не. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2016, 18:35 |
|
|
start [/forum/topic.php?fid=40&startmsg=39357663&tid=1561816]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 154ms |
0 / 0 |