触发器方面问题,

Main_csdn_String 2018-01-31 05:55:03
如何使用触发器在同一服务器中,不同数据库的同步处理-mysql必知必会这本书。

没有说要求@ 可是又提示不能够在存储过程中创建存储过程。

如果没有into @args; 就会提示1415 - Not allowed to return a result set from a trigger。

而且我使用NEW自带的虚拟表的时候,提示没有这个表,是版本问题吗?

同一个实例内
数据库使用触发器与主从数据库同步
那种更有效率呢?
---从数据库只有部分数据需要转移到主数据库。

查看帖子http://bbs.csdn.net/topics/390713201#new_post



有没有更加通用的方式,创建一个写操作的通用触发器呢?
...全文
376 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Main_csdn_String 2018-02-05
  • 打赏
  • 举报
回复
引用 6 楼 zjcxc 的回复:
不加@args的话 ------------------------- 不加不就成了 SELECT 输出了,触发器不允许这个行为 既然是同步,你应该是把数据弄一个另一个表,那应该是 INSERT INTO xx VALUES , 出个 单独的 SELECT 是想干嘛?
就是奇怪- 现在理解了。 那个另外一个表是需求的问题。 谢谢哈。
zjcxc 2018-02-01
  • 打赏
  • 举报
回复
不加@args的话 ------------------------- 不加不就成了 SELECT 输出了,触发器不允许这个行为 既然是同步,你应该是把数据弄一个另一个表,那应该是 INSERT INTO xx VALUES , 出个 单独的 SELECT 是想干嘛?
Main_csdn_String 2018-02-01
  • 打赏
  • 举报
回复
前面说的@ 是说在触发器中使用了select 这样的集合。
create trigger newproducts 
after 
insert on strud_counts   
FOR EACH ROW 
SELECT 'Product added' into @args;
这样。如果不加@args的话 就会提示不能添加这个触发器。 现在弄明白了。 同一个实例,即同一个服务器内,不同数据库内,部分表相同。所以才用触发器的 那触发器又有什么更加好的实例,写存储过程吗?
Main_csdn_String 2018-02-01
  • 打赏
  • 举报
回复
引用 3 楼 zjcxc 的回复:
复制需要 server_id 不一样,估计同一实例内的不同库是玩不转的
都是mysql数据库- 我搞懂new和old的区别了。 new在before触发器中赋值。取值在after触发器中取值。 new是新插入的数据,old是原来的数据 insert只会有new,代表要插入的新记录 delete只会有old代表要删除的记录 不过没弄明白update中new和old都有的情况下 又如何操作的
zjcxc 2018-02-01
  • 打赏
  • 举报
回复
复制需要 server_id 不一样,估计同一实例内的不同库是玩不转的
zjcxc 2018-02-01
  • 打赏
  • 举报
回复
前半部分纯粹没看懂,我又没看你说的那本书,是什么问题直接说清楚 至于主从同步,没配置过同个实例内不同数据库的,不知道行为,效率上讲,触发器是实时的,主从同步是异步的
Main_csdn_String 2018-02-01
  • 打赏
  • 举报
回复
是我标题没吸引力 都没人来看下 囧

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧