У меня есть две таблицы, триггер которых автоматически заполняет 2-ую таблицу.Как я могу получить данные, чтобы автоматически исключать нулевые значения для атрибута?
CREATE TABLE `departments` (
department_id INT(2) NOT NULL AUTO_INCREMENT,
department_name VARCHAR(30) NOT NULL,
PRIMARY KEY (department_id),
UNIQUE (department_name));
CREATE TABLE `designations_of_departments` (
department_id INT(2) NOT NULL AUTO_INCREMENT,
designation_1 VARCHAR(30),
designation_2 VARCHAR(30),
designation_3 VARCHAR(30),
designation_4 VARCHAR(30),
designation_5 VARCHAR(30),
FOREIGN KEY (department_id)
REFERENCES departments (department_id)
ON DELETE CASCADE);
delimiter $$
create trigger trigger_1 after insert on departments
for each row begin
insert into designations_of_departments(department_id, designation_1, designation_2, designation_3, designation_4, designation_5)
values (new.department_id, null, null, null, null, null);
end$$ delimiter ;
Я пытался выполнить этот запрос, но он по-прежнему показывает нулевые значения.
select * from designations_of_departments
where not (designation_1 <=> null and designation_2 <=> null and
designation_3 <=> null and designation_4 <=> null and designation_5 <=>
null) and department_id=1;
Пример:
INSERT INTO `departments` VALUES (1,'HRM'), (2,'Accounting')(3,'Engineering');
UPDATE designations_of_departments SET
designation_1 = 'Senior HR',
designation_2 = 'HR',
designation_3 = 'Junior HR' WHERE department_id = 1;
Это то, что я пробовал согласно предложению в комментариях:
select * from designations_of_departments
where designation_1 is not null
and designation_2 is not null
and designation_3 is not null
and designation_4 is not null
and designation_5 is not null
and department_id=1;