0

过程中的错误 INSERT。此插入添加所有没有UserId 的列

----------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
DROP PROCEDURE IF EXISTS CreateTable $$
CREATE PROCEDURE `CreateTable`
(
    md5 VARCHAR(255),table_name VARCHAR(255),CommentsId INT(11),
    Parent VARCHAR(100), Content TEXT,UserId INT(11), Title VARCHAR(255), 
    Nick VARCHAR(20), IdLength INT(11), suffix INT(11)
)
BEGIN



DECLARE full_table_name varchar(255);

SET @SQL=CONCAT('SELECT COUNT(\'X\') INTO @COUNTER FROM INFORMATION_SCHEMA.COLUMNS ',
            'WHERE TABLE_NAME like \'', table_name, '%\'');

PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

    SET full_table_name= table_name;


    SET @SQL=CONCAT('CREATE TABLE IF NOT EXISTS ', full_table_name, ' LIKE CommentsPattern');
    PREPARE stmt FROM @SQL;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;


SET @SQL=CONCAT('INSERT INTO ', full_table_name,'(md5,UserId, Parent, Content, CommentsId, Title, Nick,IdLength,suffix)',
        'values(',UserId,',"',md5, '",', Parent, ',"', Content, '",',CommentsId,',"',Title,'","',Nick,'",', IdLength, ',',suffix, ')');
    prepare stmt from @sql;
    execute stmt;
    deallocate prepare stmt;

END

我想添加这个值:

call CreateTable('dcf57shasdsd5723m','dcf',2,60201,'My article is',444,'New Title','Ethan',1,2);

在哪里:

  1. md5 - dfc7shgsnsty3475723m
  2. 表名 - dfc
  3. 用户 ID - 444
  4. 标题- 新标题
  5. 尼克-伊桑
  6. 评论 ID - 2
  7. - 60201
  8. 身份长度- 1
  9. 后缀- 2
  10. 内容——我的文章是
4

1 回答 1

1

在 INSERT INTO 中,您按以下顺序声明列:md5、UserId、Parent、... 但是,在值中,md5 和 UserId 值被切换:',UserId,',"',md5, '",',家长

于 2012-08-02T08:41:03.007 回答