我有一个包含语言代码的表。我需要一个触发器,当我在表中添加新行时必须使用其他语言代码生成新行。例如:
原始表
|| *id* || *const* || *text* || *i18n_language_codes_id* ||
|| 1 || NAV_HOME || Home || 1 ||
|| 2 || NAV_HOME || Homme || 2 ||
|| 3 || NAV_HOME || Hom || 3 ||
当我添加id为4的新行时:
|| *id* || *const* || *text* || *i18n_language_codes_id* ||
|| 1 || NAV_HOME || Home || 1 ||
|| 2 || NAV_HOME || Homme || 2 ||
|| 3 || NAV_HOME || Hom || 3 ||
|| 4 || NAV_ABOUT || About || 1 ||
需要id为5.6的这些新结果(相同的const和文本,只更改语言代码组合):
|| *id* || *const* || *text* || *i18n_language_codes_id* ||
|| 1 || NAV_HOME || Home || 1 ||
|| 2 || NAV_HOME || Homme || 2 ||
|| 3 || NAV_HOME || Hom || 3 ||
|| 4 || NAV_ABOUT || About || 1 ||
|| 5 || NAV_ABOUT || About || 2 ||
|| 6 || NAV_ABOUT || About || 3 ||
我该怎么做? 抱歉我的英文不好,谢谢你的帮助
答案 0 :(得分:0)
你无法用MySQL中的触发器做到这一点,但最重要的是你不必这样做。
假设语言代码来自另一个表,让我们说language_codes
您可以使用一个SQL语句一次性预填充所有语言代码的行
INSERT INTO table1 (const, text, i18n_language_codes_id)
SELECT 'NEW_CONST', 'New Text', i18n_language_codes_id
FROM language_codes
这是 SQLFiddle 演示