CREATE TABLE test01(
id int,
name varchar(5),
primary key(id)
)
ALTER TABLE tablenmame
ADD PRIMARY KEY(id);
ALTER TABLE tablename
DROP PRIMARY KEY
CREATE TABLE orders(
oid int not null,
order_no varchar(16),
pid int,
primary key(oid),
CONSTRAINT FK_person FOREIGN KEY(pid) REFERENCES person(pid)
CONSTRAINT는 데이터베이스 테이블에 적용되는 규칙을 말합니다.
이는 테이블의 데이터 무결성을 보장하는 데 중요한 역할을 합니다.
FOREIGN KEY를 생성할 때 사용하는 CONSTRAINT는 외래 키 제약 조건을 지정하는 데 사용됩니다. 외래 키는 한 테이블의 필드가 다른 테이블의 기본 키를 참조하는 것을 말하는데, 이 CONSTRAINT를 통해 테이블 간의 관계를 정의하고 데이터 무결성을 보장합니다.
예를 들어, 'Orders' 테이블에 'CustomerID'라는 외래 키가 있고, 이는 'Customers' 테이블의 'CustomerID'라는 기본 키를 참조한다고 해봅시다. 이 경우, CONSTRAINT를 사용하여 'Orders' 테이블의 'CustomerID' 필드에 입력되는 모든 값이 'Customers' 테이블의 'CustomerID' 필드에 존재하는 값이어야 한다는 규칙을 설정할 수 있습니다.
이처럼, CONSTRAINT는 데이터가 올바르게 입력되고 업데이트되는 것을 보장하며, 잘못된 데이터가 데이터베이스에 저장되는 것을 방지합니다.
명명 관례 : 외래 키 제약 조건의 이름 앞에 FK_를 붙이는 것이 관례
alter table tablename
add foreign key (pid) references person(key)
alter table tablename
drop foreign key
mysql> alter table police_station
-> add primary key(name);
Query OK, 31 rows affected (0.20 sec)
alter table crime_status
-> add column reference varchar(16);
alter table crime_status
-> add foreign key(reference) references police_station(name);
UPDATE crime_status c, police_station p
-> SET c.reference = p.name
-> where p.name like concat('서울', c.police_station,'경찰서');
마지막 괄호 안넣어서 게속 오류 생김..
constraint 일부러 안넣어봄.
alter table study
-> drop foreign key study_ibfk_1;
constraint 지정해줘야함