1

那里:

当我尝试在没有任何重复记录的情况下在表中插入数据时,我使用以下两个 SQL 语句。但它们都不适合我。我的 mysql 版本是 5.1.33-community。

SELECT @nextID := IFNULL( MAX( N_KEY ), 0 ) + 1
  FROM SYS_DICT
 WHERE N_CAT = 1;

IF (SELECT COUNT(*) AS N_COUNT
     FROM SYS_DICT
    WHERE N_CAT=1 AND C_VALUE='welcome'
   ) <= 0
THEN
  INSERT INTO SYS_DICT
    VALUES( 1, @nextID, 1, 100, 'welcome');
END IF

或者

SELECT @nextID := IFNULL( MAX( N_KEY ), 0 ) + 1
  FROM SYS_DICT
 WHERE N_CAT=1;

INSERT INTO SYS_DICT
  VALUES ( 1, @nextID, 1, 100, 'welcome')
  WHERE NOT EXISTS (
    SELECT N_KEY
      FROM SYS_DICT
     WHERE N_CAT=1 AND C_VALUE='welcome'
  );

有什么提示吗?

4

0 回答 0