我需要复制一行。
复制行,我需要更改值,此值+'复制'
我做了这个sql ..但它不起作用..
INSERT INTO prizes_i18n (
lang_id
, translation_name
, translation_desc
, name
, lang_path)
SELECT prizes_s.lang_id
, prizes_s.translation_name + 'copy'
, prizes_s.translation_desc
, prizes_s.name
, prizes_s.lang_path
FROM prizes_i18n prizes_s
WHERE prizes_s.lang_id = 637;
没有+'复制'它的作品。
像这样prizes_s.translation_name + 'copyy'
,但它不起作用。
答案 0 :(得分:10)
从this previous question你使用MySQL?如果是这样,请使用concat
进行字符串连接。
SELECT 'foo' + 'bar' ...
在MySQL中返回0
,这将解释您所看到的双打错误。
INSERT INTO prizes_i18n (lang_id, translation_name, translation_desc,
name, lang_path)
SELECT prizes_s.lang_id,
concat(prizes_s.translation_name, 'copy'),
prizes_s.translation_desc, prizes_s.name, prizes_s.lang_path
FROM prizes_i18n prizes_s WHERE prizes_s.lang_id = 637;
答案 1 :(得分:1)
随机猜测......
prizes_s.translation_name + ' Copy'
对于translation_name来说太长了,您会收到string or binary data would be truncated
错误?
是SQL Server吗?是translation_name char
还是varchar
?
答案 2 :(得分:1)
INSERT INTO
prizes_i18n
(LANG_ID,translation_name,translation_desc,名称,lang_path)
选择
prizes_s.lang_id
,concat(prizes_s.translation_name,'copy')
,prizes_s.translation_desc
,prizes_s.name
,prizes_s.lang_path
从
prizes_s WHERE prizes_s.lang_id = 637;
我认为,在你的FROM子句中,表prizes_i18n是不必要的。