programing

MySQL에서 테이블의 고유 제약 조건을 표시하려면 어떻게 해야 합니까?

muds 2023. 11. 2. 22:09
반응형

MySQL에서 테이블의 고유 제약 조건을 표시하려면 어떻게 해야 합니까?

제가 만들었지만 어떤 것인지 잊어버렸어요.

그냥 하고싶습니다.

  1. 보여주세요.
  2. 테이블의 제약 조건을 모두 제거합니다.
select distinct CONSTRAINT_NAME
from information_schema.TABLE_CONSTRAINTS
where table_name = 'table_name' and constraint_type = 'UNIQUE';

이렇게 하면 우아한 출력이 나오지 않지만 기억하기 쉽습니다.

SHOW CREATE TABLE table_name;
select distinct CONSTRAINT_NAME
from information_schema.TABLE_CONSTRAINTS
where CONSTRAINT_SCHEMA = 'mysql'

이 쿼리는 프라이머리 키, 고유 키 및 외부 키를 반환합니다.

show indexes from table_name;

OP는 싱글 테이블을 요청했는데, 이렇게 하면 됩니다.

또한 마지막을 제거하는 것은where절에는 고유한 제약 조건으로 보호되는 데이터베이스에 대한 모든 열이 표시됩니다.

SELECT
  CONSTRAINT_NAME,
  TABLE_NAME,
  COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE
  CONSTRAINT_NAME LIKE 'UNIQ%'
  AND TABLE_SCHEMA = 'your_database_name'
  AND TABLE_NAME = 'your_table_name';

유감스럽게도 mysql은 쿼리 결과에 따라 인덱스를 제거하지 못합니다.다음 쿼리의 출력을 실행하여 두 쿼리의 모든 고유 열을 삭제할 수 있습니다.

SELECT CONCAT(
  'ALTER TABLE ',
  TABLE_NAME,
  ' DROP INDEX ',
  CONSTRAINT_NAME,
  '; -- drops ',
  COLUMN_NAME,
  ' constraint'
)
FROM information_schema.KEY_COLUMN_USAGE
WHERE
  CONSTRAINT_NAME LIKE 'UNIQ%'
  AND TABLE_SCHEMA = 'your_database_name';

언급URL : https://stackoverflow.com/questions/1836502/how-do-i-show-unique-constraints-of-a-table-in-mysql

반응형