04.04.2008, 07:41 | #1 |
Участник
|
Значение по умолчанию при добавлении нового поля
Всем добрый день.
При добавлении нового поля в таблицу и последующей синхронизации к БД генерится запрос вида "ALTER TABLE TABLE1 ADD (FIELD1 VARCHAR2(10) DEFAULT '' NOT NULL)" Вопрос, можно ли добиться того, чтобы запрос добавления нового поля генерился без DEFAULT '' NOT NULL, и не грозит ли это глюками при последующей работе с таблицей? |
|
04.04.2008, 08:24 | #2 |
Участник
|
Можно узнать зачем Вам это?
__________________
PS. Сложно приехать в Москву, но ещё сложнее уехать отсюда. |
|
04.04.2008, 08:36 | #3 |
Модератор
|
День добрый
Цитата:
При добавлении нового поля в таблицу и последующей синхронизации к БД генерится запрос вида "ALTER TABLE TABLE1 ADD (FIELD1 VARCHAR2(10) DEFAULT '' NOT NULL)"
Цитата:
Вопрос, можно ли добиться того, чтобы запрос добавления нового поля генерился без DEFAULT '' NOT NULL
Цитата:
и не грозит ли это глюками при последующей работе с таблицей?
по существу: AX не поддерживает NULL значения для не-BLOB полей. Поэтому нет в синтаксисе SELECT X++ выражений типа ISNULL. Неинициализированное значение для строки - пустая строка, для чисел - 0. Соответственно генерятся WHERE условия в запросе. Поэтому синхронизация при добавлении нового поля выполняет одновременно и его инициализацию (процесс небыстрый, потому что обычно ведет к большому количеству расщеплений страниц в терминологии сиквела или блоков в оракле)
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: Logger (2). |
08.04.2008, 00:52 | #4 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Logger (2). |
08.04.2008, 12:03 | #5 |
Участник
|
Цитата:
SQL использует троичную логику - 1. Да 2. Нет 3. Не знаю "Не знаю" соответсвует Null для его проверки SQL имеет специальный функции IS NULL и IS NOT NULL Ядро аксапты их не использует для работы с обычными полями (исключение, может быть recVersion - но речь то не о нем). А любое сравнение с Null значением в WHERE дает false. Так что наличие null значений в полях Аксапты противопоказано. Кроме того при выборке из базы, если встречается null значение в выбираемом поле, то ядро аксапты генерит исключение. |
|
|
|