powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / триггер на добавление в таблицу записей по foreign_key
6 сообщений из 6, страница 1 из 1
триггер на добавление в таблицу записей по foreign_key
    #38697830
PurpleViolence
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица..tab(id_key, id, key, value)
id_key - primary key

Надо написать триггер, который бы добавлял к каждому id!!! строку, eсли её не существует, где key1=0.
Собственно там получается по логике 2 триггера.
1-ый который создает строку для каждого id если она не существует со значением key="0",
а 2-ой проверяет что бы если задается новое значение null что бы добавлял вместо "0".
Или может я что-то не понимаю...в общем мне нужна помощь. потому как я совсем запуталась и мой триггер даже не добавляет собственно key=null по ID.

DELIMITER $$

USE `tab`$$

DROP TRIGGER IF EXISTS `tr2`$$

CREATE
TRIGGER `tr2` BEFORE INSERT ON `tab`
FOR EACH ROW BEGIN
IF NEW.key = 'key1' AND NEW.value IS NULL THEN
SET NEW.meta_value = '0';
END IF;
END;
$$

DELIMITER ;
...
Рейтинг: 0 / 0
триггер на добавление в таблицу записей по foreign_key
    #38697851
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PurpleViolenceтаблица..tab(id_key, id, key, value)
PurpleViolenceBEFORE INSERT ON `tab`
PurpleViolenceSET NEW.meta_value = '0';показывайте настоящую таблицу
или объясните подробнее, с примером, в котором всё бы сходилось :)
...
Рейтинг: 0 / 0
триггер на добавление в таблицу записей по foreign_key
    #38697875
PurpleViolence
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
есть таблица wp_postmeta:

Field Type Collation Null Key Default Privileges Comment
---------- --------------------- --------------- ------ ------ ------- -------------- ------------------------------- ---------
meta_id bigint(20) unsigned (NULL) NO PRI (NULL) auto_increment select,insert,update,references
post_id bigint(20) unsigned (NULL) NO MUL 0 select,insert,update,references
meta_key varchar(255) utf8_unicode_ci YES MUL (NULL) select,insert,update,references
meta_value longtext utf8_unicode_ci YES (NULL) select,insert,update,references

/*Index Information*/
---------------------


CREATE TABLE `wp_postmeta` (
`meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`meta_value` longtext COLLATE utf8_unicode_ci,
PRIMARY KEY (`meta_id`),
KEY `post_id` (`post_id`),
KEY `meta_key` (`meta_key`)
) ENGINE=InnoDB AUTO_INCREMENT=192503 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


собственно нужно для каждого post_id где meta_key='area' and meta_value = NULL изменить на meta_value="0"
...
Рейтинг: 0 / 0
триггер на добавление в таблицу записей по foreign_key
    #38697880
PurpleViolence
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

собственно проблема в том, что сейчас этих полей meta_key='area' where meta_value=null !!!нет (((
то есть их надо создать как-то для каждого определенного post_id
...
Рейтинг: 0 / 0
триггер на добавление в таблицу записей по foreign_key
    #38697894
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PurpleViolence, наверное, не "создать" (поля-то есть), а записать в эти поля нужную информацию?
PurpleViolencemeta_key='area' where meta_value=nullХШ говорит, что надо что-то такое
Код: sql
1.
update wp_postmeta set meta_key='area' where meta_value IS null

впрочем, я запросто могу ошибаться, ведь о желаемом результате кроме процитированного вы не сказали вообще ничего...
...
Рейтинг: 0 / 0
триггер на добавление в таблицу записей по foreign_key
    #38698018
PurpleViolence
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

надо что бы для каждого post_id создался meta_key = 'area' and meta_value = 0 если не присвоено другое значение.

дело в том, что если пользователь не заполнил поле area вручную из админки, то эта строка не создается вообще, она даже не равна null. собственно с этим и загвоздка.
присвоить строке значение не проблема.
проблема создать строку если она не существует.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / триггер на добавление в таблицу записей по foreign_key
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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