【发布时间】:2012-04-04 15:34:06
【问题描述】:
每次将新用户添加到我的系统中时,我都需要能够将一组值添加到表中。
添加用户后,我想查看我的“Tags”表,并在“Tag_Score”表中为“Tags”表中的每个 ID 插入一个新条目。
我根据我在网上找到的东西尝试了以下方法,但虽然逻辑看起来很合理,但它似乎不起作用
DECLARE @LoopVar INTEGER
SET @LoopVar = ( SELECT MIN(Tag_Score.T_ID)
FROM Tags ) WHILE @LoopVar IS NOT NULL
BEGIN
INSERT INTO `a3360218_DD`.`Tag_Score` (
`A_ID` ,
`T_ID` ,
`Score` ,
`Visits`
)
VALUES (
'" . $accountID . "', @LoopVar , '0', '0'
)
SET @LoopVar = ( SELECT MIN(Tag_Score.T_ID)
FROM TheTable
WHERE @LoopVar < T_ID )
END
给出的错误是:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHILE @LoopVar IS NOT NULL
BEGIN
INSERT INTO `a3360218_DD`.`Tag_Score` (
' at line 2
提前致谢
马特
【问题讨论】:
-
如果你能多解释一点用英语你正在尝试做什么,而不是发布损坏的代码(尽管你尝试了一些东西很好),那真的很有帮助.另外,请发布
Tags和Tag_Score的表定义 -
我很难理解你的问题,但听起来你需要看看INSERT... SELECT
-
对不起,我度过了漫长的一天,请重新阅读此内容,您说得对,我的英语很糟糕哈哈!虽然这个 INSERT...SELECT 东西似乎是正确的方法,但我以前从未听说过它(这对这一切有点新)。非常感谢大家
标签: mysql sql variables insert declare