0
如果我有一个创建它运行临时表X每次一个存储过程,有没有一种方式来运行带有某种独特的会话ID的存储过程,这样,当人一运行存储过程,它创建临时表X,然后当人B运行相同的过程时,它不会创建临时表X,然后崩溃。
我基本上是想有做了一个程序,但我想muluple人在同一时间运行同样的程序,用了,因为临时表已创建的程序故障切换。只是想知道是否有什么我可以用MySQL中的会话变量来做的,或者可能使用某人的连接信息来为运行该过程的每个人创建一个独特的会话。也许每次都创建表X_session_ID。有没有办法在存储过程中生成唯一的ID?MySQL的唯一会话运行存储过程
感谢。我使用以下CREATE TEMPORARY TABLE search_columns_temp1作为我的过程的一部分。所以每次运行该过程时,都会创建该临时表。那么这是否意味着当人A连接时,运行程序,并且人B可能同时连接运行同一个程序,那么在一个数据库上创建两个search_columns_temp1表? – user1236443 2013-04-22 10:56:43
@ user1236443是的,但是用户都不能看到其他用户的临时表,它们都可以有一个同名的表并且只能看到他们自己的表。 – 2013-04-22 10:58:57
我认为我存在的问题是存储过程具有特定的权限,已由我定义,并倾向于以我身份运行(即SQL安全定义器)。所以每次运行这个程序时,它都在我的细节下运行。这样做是为了让我不必为了运行这一个过程而给许多用户相同的特权。临时表是否仍然有效?基于连接?或者如果它始终在我之下运行,它是否会因为临时表已创建而失败? – user1236443 2013-04-22 11:00:03