|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Добрый день всем! Я создал таблицу, в ней есть поле ID(no null). Есть ещё триггер для автоинкремента: if (new.id is null) then new.id = gen_id(GEN_MAPPING_TMP_ID,1); Но создать по полю ID первичный ключ не получается - выскакивает ошибка: The insert failed because a column definition includes validation constraints. validation error for column ID, value "*** null ***". В чём дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 10:32 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, триггер BEFORE INSERT? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 10:36 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
ДжекВ чём дело? Код триггера (полностью DDL)? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 10:37 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
вот триггер: CREATE OR ALTER TRIGGER MAPPING_TMP_BI FOR MAPPING_TMP ACTIVE BEFORE INSERT POSITION 0 as begin if (new.id is null) then new.id = gen_id(GEN_MAPPING_TMP_ID,1); end ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 10:42 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, значит посылаешь id не null. Запрос на Insert в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 10:45 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
KreatorXXI Запрос на Insert в студию. Какой запрос? Я первичный ключ не могу создать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 10:47 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
ДжекKreatorXXI Запрос на Insert в студию. Какой запрос? Я первичный ключ не могу создать. А в таблице уже есть значения? А если сделать select * from table where id is null ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 10:57 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, значит в этой таблице уже есть данные. Причём в id где-то присутствует null ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 10:57 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Симонов Денис значит в этой таблице уже есть данные. Причём в id где-то присутствует null Сначала были данные, но без null (легко проверить - их мало) - не получалось. Очистил таблицу - результат тот же. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 11:04 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, Запутал всех. Причём здесь тогда триггер? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 11:06 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, DDL таблицы в студию и скрипт создания первичного ключа тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 11:09 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
CREATE GENERATOR GEN_MAPPING_TMP_ID; CREATE TABLE MAPPING_TMP ( NAME VARCHAR(63), SHEET VARCHAR(34), NAME5P VARCHAR(67), SHEET5P VARCHAR(36), ID P_KEY NOT NULL /* P_KEY = INTEGER NOT NULL */ ); Почему-то в ddl таблице ещё создание генератора записалось? Может из-за этого... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 11:14 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, скрипт ПК где? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 11:21 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
ALTER TABLE MAPPING_TMP ADD CONSTRAINT PK_MAPPING_TMP PRIMARY KEY (ID); ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 11:23 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
This operation is not defined for system tables. Dynamic SQL Error. SQL error code = -607. Invalid command. Specified domain or source column P_KEY does not exist. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 11:26 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Очевидно, вам сначала надо создать домен P_KEY... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 11:30 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
GallemarЧто я не так делаю? Кодировка подключения правильная? И по идее, это должна быть новая тема? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 12:00 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
GallemarЧто я не так делаю? Позволяешь серверу собрать мусор в таблице перед созданием ключа. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 12:12 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Сейчас сделал таблицу с первичным ключом из скрипта - получилось. Раньше таблица была создана автоматически, при импорте данных. Вопрос снимается. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 12:37 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
fraksКодировка подключения правильная? И по идее, это должна быть новая тема? Это random. Вопрос к ТС - почему у меня работает, а у него нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 13:36 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
GallemarВопрос к ТС - почему у меня работает, а у него нет.Все тебе разжевать надо? ПК-ФК стоят над транзакциями, судя по всему есть незакрытые коннекты, которые заинтересованы в старых версиях записей, которые (версии, уже удаленные/исправленные данные) не дают создаться ключу. Не просто так рекомендация есть: изменяй метаданные монопольно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 13:54 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyGallemarВопрос к ТС - почему у меня работает, а у него нет.Все тебе разжевать надо? Вопрос риторический :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 16:08 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, Я обычно деляю так (для любой таблицы): CREATE GENERATOR MyTable_GEN_ID; CREATE OR ALTER TRIGGER MyTable_BI0 FOR MyTable ACTIVE BEFORE INSERT POSITION 0 AS declare variable CurrentCode integer; begin if ((NEW.MyTable_ID is NULL) or (NEW.MyTable_ID<=0)) then NEW.MyTable_ID = GEN_ID(MyTable_GEN_ID,1); else begin CurrentCode = GEN_ID(MyTable_GEN_ID,0); if (CurrentCode<NEW.MyTable_ID) then CurrentCode = GEN_ID(MyTable_GEN_ID,NEW.MyTable_ID-CurrentCode); end end ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2017, 17:32 |
|
|
start [/forum/topic.php?fid=40&fpage=34&tid=1561140]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 156ms |
0 / 0 |