我可以在MySQL中的IF语句(或存储过程)中锁定表吗?

时间:2010-03-13 18:52:47

标签: mysql

这(来自存储过程的主体)抛出语法错误:

  IF (name = in_name)
          SET out_id = temp;
  ELSE
          LOCK TABLE People WRITE;
          INSERT INTO People (Name)
          VALUES (in_name);
          UNLOCK TABLE;
          SELECT LAST_INSERT_ID() INTO out_id 
  END IF

我是否必须在SP开始时锁定我需要的任何表格?

1 个答案:

答案 0 :(得分:2)

然后缺少:IF (name = in_name) THEN

但为什么要锁定桌子呢?在这个例子中它完全没有意义,它只会破坏整体性能,因为没有其他人可以对表做任何事情。锁没有添加任何东西。我没有看到这一点,但也许你没有告诉我们一切。 ;)