プロシージャの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);
どこ:
- md5 -dfc7shgsnsty3475723m
- table_name -dfc
- UserId -444
- タイトル-新しいタイトル
- ニック-イーサン
- CommentsId -2
- 親-60201
- IdLength -1
- 接尾辞-2
- コンテンツ-私の記事は