Скачиваний:
1
Добавлен:
31.05.2023
Размер:
3.08 Кб
Скачать
CREATE TABLE ENUM(
ID_ENUM SERIAL PRIMARY KEY,
NAME VARCHAR(50) UNIQUE NOT NULL,
SHORT_NAME VARCHAR(10)
);

CREATE TABLE ENUM_VALUE(
ID_VALUE SERIAL PRIMARY KEY,
ID_ENUM INTEGER NOT NULL,
VALUE INTEGER NOT NULL,
NAME VARCHAR(50) NOT NULL,
SHORT_NAME VARCHAR(10),
FOREIGN KEY (ID_ENUM) REFERENCES ENUM(ID_ENUM) ON DELETE CASCADE
);


/******************Заполнение списка пречислений*************************/
SELECT * FROM insert_enum('Цвета радуги', NULL);
SELECT * FROM delete_enum('Цвета радуги');
select * from get_enum_id('Цвета радуги');
SELECT * FROM get_enum_amount('Цвета радуги');
SELECT * FROM rename_enum('Цвета радуги', 'Цвета радуги2');
SELECT * FROM delete_enum_value('Цвета радуги', 'Красный');

SELECT * FROM ins_enum_value(NULL, 'Красный', NULL, 'Цвета радуги');
SELECT * FROM ins_enum_value(NULL, 'Оранжевый', NULL, 'Цвета радуги');
SELECT * FROM ins_enum_value(3, 'Желтый', NULL, 'Цвета радуги');
SELECT * FROM ins_enum_value(5, 'Зеленый', NULL, 'Цвета радуги');
SELECT * FROM ins_enum_value(NULL, 'Голубой', NULL, 'Цвета радуги');
SELECT * FROM ins_enum_value(NULL, 'Синий', NULL, 'Цвета радуги');
SELECT * FROM ins_enum_value(NULL, 'Фиолетовый', NULL, 'Цвета радуги');

SELECT* FROM rename_enum_value(NULL, 'Зеленый', 'Цвета радуги');
SELECT* FROM rename_enum_value('NULL', NULL, 'Цвета радуги');

SELECT * FROM get_enum_list('Цвета радуги');

SELECT * FROM change_number_postion(NULL, 10,'Цвета радуги');
SELECT * FROM change_number_postion('Зеленый', 10,'Цвета радуги');
SELECT * FROM change_number_postion('1,5', 499, 'Ряд зубчатых колес');


/******************Тестирование втрого списка пречислений*************************/
INSERT INTO ENUM(NAME, SHORT_NAME) VALUES('Дни недели', NULL);

SELECT * FROM ins_enum_value(NULL, 'Понедельник', 'Пн', 'Дни недели');
SELECT * FROM ins_enum_value(NULL, 'Вторник', 'Вт', 'Дни недели');
SELECT * FROM ins_enum_value(NULL, 'Среда', 'Ср', 'Дни недели');
SELECT * FROM ins_enum_value(NULL, 'Четверг', 'Чт', 'Дни недели');
SELECT * FROM ins_enum_value(NULL, 'Пятница', 'Пт', 'Дни недели');
SELECT * FROM ins_enum_value(NULL, 'Суббота', 'Сб', 'Дни недели');
SELECT * FROM ins_enum_value(NULL, 'Воскресенье', 'Вс', 'Дни недели');

SELECT * FROM get_enum_list('Дни недели');

-- Если задать несуществующий то выводится Done!
SELECT * FROM change_number_postion('Суббота', 10,'Дни недели');
SELECT * FROM change_number_postion('Суббота', 5,'Дни недели');