mysql - 如果引用记录不存在其他插入,我如何创建表?
问题描述
我设计了一个系统,它接收到带有 ResortId、DayId、SkierId、Time、LiftId 的请求。
我创建了一个名为 day_resort 的表,其中包含 ResortId、DayId 和一个等于 ResortId 和 DayId 串联的引用。当我收到带有参考(ResortId + DayId)的请求时,day_resort 中存在。我将简单地找到名称 = Reference 的表,并在其中插入 SkierId、Time 和 LiftId。相反,如果我在day_resort中没有找到某个Reference,我会在ResortId + DayId之后创建一个表名,并将ResortId,DayId,ResortId + DayId的记录插入到day_resort中,之后,我会去ResortId + DayId 之后的表名,并插入一条包含 SkierId、Time 和 LiftId 的记录。
这是我尝试的示例:
DELIMITER //
DROP PROCEDURE IF EXISTS createLogTable;
CREATE PROCEDURE createLogTable(tblName VARCHAR(255))
BEGIN
SET @tableName = tblName;
SET @sql := CASE
WHEN NOT EXISTS (SELECT * FROM day_resort WHERE Reference = @tableName) THEN
'INSERT INTO day_resort (ResortId, DayId, Reference) VALUES ("Marriot", "21", "Marriot21")';
ELSE
CONCAT('INSERT INTO `' , @tableName, '` (SkierId, TIme, LiftId) VALUES ("111", "222", "333")');
END;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
CREATE TABLE IF NOT EXISTS @tableName (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
SkierId VARCHAR(255) NOT NULL
Time VARCHAR(255) NOT NULL,
LiftId VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
END //
我收到错误代码错误:2014 命令不同步;你现在不能运行这个命令
谢谢你的帮助
解决方案
推荐阅读
- php - Codeigniter 以正确的方式路由
- python - 如何使用硒修复“未找到表”错误
- php - 如何将 PHP 与 MDBootstrap (Pro) 和 Gulp 4 一起使用?
- python - 给定高度和值,递归生成三角形格式的列表列表
- cqrs - 事件溯源。与子列表或 ParentID 聚合?
- mysql - 如何跳过 autoIncrement 列以使用 JDBC Google Apps 脚本在 mySQL db 上写入数据
- python - 如何使用 Python 将单独的 PDF 附加到联系人列表电子邮件地址?
- python-3.x - 如何在 panda 列中搜索前缀,如果找到,则在新列中返回该前缀+接下来的 11 个字符?
- schema.org - JSON 中的 Schema.org isConsumableFor 属性
- python - 如何使用 on_message 禁止作者?