use*_*257 3 mysql stored-procedures view
我有一个创建表的过程,是否有可能有一个视图(或类似的)可以调用该过程然后从表中选择?
我试过这个:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `new_routine`(p1 INT) RETURNS int(1)
BEGIN
CALL rMergeDateFields();
RETURN 1;
END
CREATE VIEW `db`.`vIntervals` AS
SELECT new_routine(0) AS col1;
SELECT * FROM MergedData;
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误
错误 1422:存储的函数或触发器中不允许显式或隐式提交。
有任何想法吗?
你不能。视图通常是只读操作;如果调用存储过程,则无法保证该行为。
相关问题:
这是一个规范资源:
http://dev.mysql.com/doc/refman/5.1/en/view-updatability.html
一些视图是可更新的。也就是说,您可以在 UPDATE、DELETE 或 INSERT 等语句中使用它们来更新基础表的内容。要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。还有某些其他构造使视图不可更新。
由于调用存储过程不能保证与视图行的 1:1 关系,因此不允许更新。
| 归档时间: |
|
| 查看次数: |
20104 次 |
| 最近记录: |