본문 바로가기

기술스택을 쌓아보자/SQL8

[조각 SQL] 테이블 내의 CONSTRAINT 확인하기 가장 좋은 것은 TABLE 내의 제약을 건들이지 않는 것이지만, DB를 만지다보면 그것이 쉽지 않다. 제약을 수정해야하는 경우에는 CONSTRAINT NAME을 알아야 하는 경우가 있는데, 그럴 때는 아래를 써주면 된다. SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=’table_name’; +--------------------+-------------------+-----------------+--------------+------------+-----------------+ | CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | TABLE_SCHEMA | TABLE_NAM.. 2022. 5. 17.
[조각SQL] ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails 해결하기, 이미 생성된 테이블에 cascade 적용 MariaDB [db]> delete from table where id > 170000; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`db`.`table`, CONSTRAINT `table_ibfk_1` FOREIGN KEY (`prev_id`) REFERENCES `table` (`id`)) 테이블에서 데이터를 삭제하려고 시도하니 아래와 같은 로그가 떴다. 이는 다른 테이블에 해당 데이터를 참조하고 있는 외래키가 있기 때문이다. 보통 테이블을 생성할 때 cascade 옵션을 사용하면, pk가 지워지면 해당 pk를 fk로 참조하는 데이터로 연계되어 삭제가 되지만, 내 경우에는 처음에 c.. 2022. 5. 17.
[조각SQL] 칼럼 이름 바꾸기 rename column ALTER TABLE TableName RENAME COLUMN OldColumnName TO NewColumnName; 간-딴! 이렇게 글을 날로먹어도 되는건가? 참조문서 RENAME Column | How To Rename Column Name In SQL? | Edureka The RENAME command is used to rename column name in sql. ALTER TABLE TableName RENAME COLUMN OldColumnName TO NewColumnName; www.edureka.co 2022. 5. 11.
TIL 2022 05 10 - sqlalchemy의 cascade, relationship [TODAY I LEARN] [TIL 2022 05 10] 오늘은 sqlalchemy의 cascade option을 사용하고, 관련 개념을 익혀보았다. cascade적용하는법 cascade를 relationship()을 통해 지정한다. relationship()의 첫번째 인자는 참조할 모델명이다. cascade의 default는 save-update and merge 이기 때문에, delete나 delete-orphan은 지정해주어야한다. class Order(Base): __tablename__ = 'order' items = relationship("Item", cascade="all, delete-orphan") customer = relationship("User", cascade="save-update") backref란?.. 2022. 5. 11.