mysql - 插入临时表在mysql存储过程中不起作用
问题描述
我有以下存储过程:
create temporary table logData (table_name varchar(50), column_name varchar(50), changed_date date, changed_by char(10), old_value varchar(50), new_value varchar(50))
insert into logData SELECT table_name, column_name, changed_date, changed_by, old_value, new_value FROM log WHERE changed_by=empId AND changed_date BETWEEN startDate AND endDate
UNION
SELECT "reservation_flight", column_name, changed_date, changed_by, old_value, new_value FROM reservation_flight_log WHERE changed_by=empId AND changed_date BETWEEN startDate AND endDate
UNION
SELECT "ticket", column_name, changed_date, changed_by, old_value, new_value FROM ticket_log WHERE changed_by=empId AND changed_date BETWEEN startDate AND endDate
UNION
SELECT "passenger_record", column_name, changed_date, changed_by, old_value, new_value FROM passenger_record_log WHERE changed_by=empId AND changed_date BETWEEN startDate AND endDate
select * from logData order by changed_date;
在上面的 sql select 语句中empId
,startDate
和endDate
是这个存储过程的输入参数。这是显示错误请帮助?谢谢你!
解决方案
我相信您缺少两个分号:一个在第一条语句的末尾,另一个在最后一行的末尾。你可以像下面这样重写它:
CREATE temporary TABLE logData (table_name varchar(50),
column_name varchar(50),
changed_date date,
changed_by char(10),
old_value varchar(50),
new_value varchar(50));
INSERT INTO logData
SELECT table_name, column_name, changed_date, changed_by, old_value, new_value
FROM log
WHERE changed_by=empId AND changed_date BETWEEN startDate AND endDate
UNION
SELECT "reservation_flight", column_name, changed_date, changed_by, old_value, new_value
FROM reservation_flight_log
WHERE changed_by=empId AND changed_date BETWEEN startDate AND endDate
UNION
SELECT "ticket", column_name, changed_date, changed_by, old_value, new_value
FROM ticket_log
WHERE changed_by=empId AND changed_date BETWEEN startDate AND endDate
UNION
SELECT "passenger_record", column_name, changed_date, changed_by, old_value, new_value
FROM passenger_record_log
WHERE changed_by=empId AND changed_date BETWEEN startDate AND endDate;
SELECT * FROM logData ORDER BY changed_date;
推荐阅读
- laravel - Laravel Api 返回 Html 而不是 json
- reactjs - 将值传递给按钮单击事件
- php - 使用具有附加关系的数据透视表
- node.js - NodeJS 使用 POST 响应从 WebServer 下载文件
- deep-learning - 函数实例化在外部推理上下文中的 index: 92 处具有未定义的输入形状。| TensorFlow 2.0
- python - 如何接受多个输入并将其全部放在一个列表中
- python - 在 DataFrame 中插入 Pandas Plot 的图像
- firebase - 当 Firestore 文档快照填充时,字符串的颤振列表不响应 if null 运算符
- r - 如何在 R 中导入没有标题和名称的单独文件的数据集并将名称附加到数据集?
- audio - 在 ffmpeg 中将 m4a 转换为 WAV 文件(包含签名的 16 位 PCM 样本)