powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Добавление первичного ключа в действующую таблицу
5 сообщений из 5, страница 1 из 1
Добавление первичного ключа в действующую таблицу
    #38827948
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый, проблемы, не пойму почему, вроде бы всё делаю верно.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
/******************************************************************************/
/***               Generated by IBExpert 08.12.2014 13:07:14                ***/
/******************************************************************************/

/******************************************************************************/
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/***                                 Tables                                 ***/
/******************************************************************************/


CREATE GENERATOR GEN_SCENARIO_ACTION_ID;

CREATE TABLE SCENARIO_ACTION (
    ID           INTEGER NOT NULL,
    RSCENARIOID  INTEGER NOT NULL,
    VORDER       INTEGER NOT NULL,
    RACTIONID    INTEGER NOT NULL,
    PARAM        INTEGER,
    PARAM2       DOUBLE PRECISION,
    DEPEND       INTEGER
);




/******************************************************************************/
/***                              Foreign Keys                              ***/
/******************************************************************************/

ALTER TABLE SCENARIO_ACTION ADD CONSTRAINT FK_SCENARIO_ACTION_1 FOREIGN KEY (RSCENARIOID) REFERENCES SCENARIO (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE SCENARIO_ACTION ADD CONSTRAINT FK_SCENARIO_ACTION_2 FOREIGN KEY (RACTIONID) REFERENCES "ACTION" (ID);


/******************************************************************************/
/***                                Triggers                                ***/
/******************************************************************************/


SET TERM ^ ;



/******************************************************************************/
/***                          Triggers for tables                           ***/
/******************************************************************************/



/* Trigger: SCENARIO_ACTION_BI */
CREATE OR ALTER TRIGGER SCENARIO_ACTION_BI FOR SCENARIO_ACTION
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gen_scenario_action_id,1);
end
^


SET TERM ; ^



/******************************************************************************/
/***                              Descriptions                              ***/
/******************************************************************************/

COMMENT ON TABLE SCENARIO_ACTION IS 
'Правильный порядок действий студента в сценариях (ввод препарата, дефибрилляция и т.д.)
Используется для выставления оценки.';



/******************************************************************************/
/***                          Fields descriptions                           ***/
/******************************************************************************/

COMMENT ON COLUMN SCENARIO_ACTION.RSCENARIOID IS 
'ID сценария';

COMMENT ON COLUMN SCENARIO_ACTION.VORDER IS 
'Порядковый номер действия при выполнении';

COMMENT ON COLUMN SCENARIO_ACTION.RACTIONID IS 
'ID требуемого действия (ключ в таблице ACTION)';

COMMENT ON COLUMN SCENARIO_ACTION.PARAM IS 
'Параметр действия (например, ID вводимого препарата)';

COMMENT ON COLUMN SCENARIO_ACTION.PARAM2 IS 
'Второй параметр действия';



/******************************************************************************/
/***                               Privileges                               ***/
/******************************************************************************/


/* Privileges of users */
GRANT SELECT ON SCENARIO_ACTION TO PUBLIC;



делаю ALTER TABLE SCENARIO_ACTION ADD CONSTRAINT PK_SCENARIO_ACTION PRIMARY KEY (ID);


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
------ Performance info ------
Prepare time = 0ms
Execute time = 16ms
Current memory = 2 374 824
Max memory = 2 482 940
Memory buffers = 90
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 122



подтверждаю транзакцию

Невозможно подтвердить транзакцию:
can't format message 13:375 -- message file C:\WINDOWS\firebird.msg not found.
validation error for column ID, value "*** null ***".

Ошибка!! Но http://c2n.me/jqPfQQ

В чём пробелма?
...
Рейтинг: 0 / 0
Добавление первичного ключа в действующую таблицу
    #38827958
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, кто-то где-то кому-то врёт.
Ошибка говорит о Null-e, а на картинке
в 23 записях в поле Id только числа.
Значит или транзакцию не подтвердил,
или где-то ещё запутался. Во-вторых,
когда приводишь DDL такого простого
случая, выкидывай всякие COMMENT
и пр. ненужный мусор. В-третьих,
обычно PK, FK и пр. создают до
добавления данных, а не после.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Добавление первичного ключа в действующую таблицу
    #38827962
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не охото таблицу пересоздавать, я несколько раз закрывал открывал IBExpert и вот такая беда
...
Рейтинг: 0 / 0
Добавление первичного ключа в действующую таблицу
    #38827977
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пересоздал таблицу
...
Рейтинг: 0 / 0
Добавление первичного ключа в действующую таблицу
    #38827997
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь можешь за докторскую сесть
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Добавление первичного ключа в действующую таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]