[MySQL] 테이블에서 필드 지우기

이태권 (Taekwon Lee)·2022년 6월 24일
0

[MySQL]

목록 보기
3/4

❓ 문제점

csv 파일을 MySQL database에 옮기려 했으나, 에러가 발생했다

with open(CSV_PATH_ACTORS) as in_file:
    data_reader = csv.reader(in_file)
    next(data_reader, None)
    for row in data_reader:
        if row[0]:
            name      = row[1]
            image_url = row[2]
            Actor.objects.create(name=name, image_url=image_url)

MySQL에서 들어가 보니 기존 models.py에서 잘못 추가한 필드 2개가 있었다.
그 2개는 castrole인데, 이 둘을 지우고 싶다.

mysql> desc actors;
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | bigint       | NO   | PRI | NULL    | auto_increment |
| name      | varchar(80)  | NO   |     | NULL    |                |
| image_url | varchar(200) | NO   |     | NULL    |                |
| cast      | varchar(50)  | NO   |     | NULL    |                |
| role      | varchar(50)  | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

❗️ 해결

명령어 ALTER TABLE ~ DROP ... ;를 쓰면 된다

  • ~에는 지워야 할 필드의 테이블 이름을 입력,
  • ...지워야 할 필드 이름을 입력한다
mysql> ALTER TABLE actors DROP cast;
Query OK, 0 rows affected (0.02 sec)

지우고 싶은 cast가 없어졌다.

mysql> desc actors;
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | bigint       | NO   | PRI | NULL    | auto_increment |
| name      | varchar(80)  | NO   |     | NULL    |                |
| image_url | varchar(200) | NO   |     | NULL    |                |
| role      | varchar(50)  | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

지우고 싶은 role도 없애 보자.

mysql> ALTER TABLE actors DROP role;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

완료!

mysql> desc actors;
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | bigint       | NO   | PRI | NULL    | auto_increment |
| name      | varchar(80)  | NO   |     | NULL    |                |
| image_url | varchar(200) | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)
profile
(Backend Dev.) One step at a time

0개의 댓글