|
|
|
триггер на добавление в таблицу записей по foreign_key
|
|||
|---|---|---|---|
|
#18+
Есть таблица..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 ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 13:16:30 |
|
||
|
триггер на добавление в таблицу записей по foreign_key
|
|||
|---|---|---|---|
|
#18+
PurpleViolenceтаблица..tab(id_key, id, key, value) PurpleViolenceBEFORE INSERT ON `tab` PurpleViolenceSET NEW.meta_value = '0';показывайте настоящую таблицу или объясните подробнее, с примером, в котором всё бы сходилось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 13:25:59 |
|
||
|
триггер на добавление в таблицу записей по foreign_key
|
|||
|---|---|---|---|
|
#18+
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" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 13:40:59 |
|
||
|
триггер на добавление в таблицу записей по foreign_key
|
|||
|---|---|---|---|
|
#18+
tanglir, собственно проблема в том, что сейчас этих полей meta_key='area' where meta_value=null !!!нет ((( то есть их надо создать как-то для каждого определенного post_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 13:44:35 |
|
||
|
триггер на добавление в таблицу записей по foreign_key
|
|||
|---|---|---|---|
|
#18+
PurpleViolence, наверное, не "создать" (поля-то есть), а записать в эти поля нужную информацию? PurpleViolencemeta_key='area' where meta_value=nullХШ говорит, что надо что-то такое Код: sql 1. впрочем, я запросто могу ошибаться, ведь о желаемом результате кроме процитированного вы не сказали вообще ничего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 13:51:17 |
|
||
|
триггер на добавление в таблицу записей по foreign_key
|
|||
|---|---|---|---|
|
#18+
tanglir, надо что бы для каждого post_id создался meta_key = 'area' and meta_value = 0 если не присвоено другое значение. дело в том, что если пользователь не заполнил поле area вручную из админки, то эта строка не создается вообще, она даже не равна null. собственно с этим и загвоздка. присвоить строке значение не проблема. проблема создать строку если она не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 15:18:16 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38697830&tid=1834501]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 296ms |

| 0 / 0 |
