Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да предотвратя дублиращи се записи от моята таблица Игнориране на вмъкване не работи тук

променете таблицата, като добавите UNIQUE ограничение

ALTER TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)

но можете да направите това, ако таблицата employee е празен.

или ако съществуват записи, опитайте да добавите IGNORE

ALTER IGNORE TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)

АКТУАЛИЗИРАНЕ 1

Нещо се обърка, предполагам. Трябва само да добавите уникално ограничение за колона ename тъй като eno винаги ще бъде уникален поради AUTO_INCREMENT .

За да добавите уникално ограничение, трябва да направите някои почиствания на вашата маса.

Заявките по-долу изтриват някои дублиращи се записи и променят таблицата, като добавят уникално ограничение към колона ename .

DELETE a
FROM Employee a
     LEFT JOIN
     (
        SELECT ename, MIN(eno) minEno
        FROM Employee
        GROUP BY ename
     ) b ON a.eno = b.minEno
WHERE b.minEno IS NULL;

ALTER TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename);

Ето пълна демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извличане на текст между поднизове в MySQL

  2. Как да изпълним заявка, която се съхранява в колона на таблицата MySQL?

  3. Клауза INNER JOIN ON срещу WHERE

  4. mysql грешка:ГРЕШКА 1018 (HY000):Не мога да прочета директорията на '.' (грешка:13)

  5. MySQL:Активирайте LOAD DATA LOCAL INFILE