各位大侠,同样是下面的脚本,在不同的库执行得出如下两种结果不同,为什么呢? 想要第一种结果。
1)1 65
       166
2)1  65
    2 66INSERT INTO function_group_auth (
  func_group_id,
  group_no

VALUES
  (
    (SELECT 
      id 
    FROM
      (SELECT 
        MAX(func_group_id) + 1 AS id 
      FROM
        function_group_auth) AS a),
    65
  ),
  (
    (SELECT 
      id 
    FROM
      (SELECT 
        MAX(func_group_id) + 1 AS id 
      FROM
        function_group_auth) AS a),
    66
  );

解决方案 »

  1.   

    mysql语法不通啊
    ERROR 1093 (HY000): You can't specify target table 'function_group_auth' for update in FROM clause
      

  2.   

    实际比这个复杂,我给简化了。这个再试试应该没问题
    建表
    CREATE TABLE `function_group_auth_1` (
      `func_group_id` INT(11) NOT NULL COMMENT 'func_group_id',
      `function_base_id` INT(11) NOT NULL COMMENT 'function_base_id',
      `group_name` VARCHAR(50) NOT NULL COMMENT 'group_name',
       PRIMARY KEY (`func_group_id`,`function_base_id`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8
    INSERT INTO function_group_auth_1 (
      func_group_id,
      function_base_id,
      group_name

    VALUES
      (
        (SELECT 
          id 
        FROM
          (SELECT 
            MAX(func_group_id) + 1 AS id 
          FROM
            function_group_auth_1) AS a),
        65,
        '测试'
      ),
      (
        (SELECT 
          id 
        FROM
          (SELECT 
            MAX(func_group_id) + 1 AS id 
          FROM
            function_group_auth_1) AS a),
        66,
        '测试'
      );