SQLAlchemy๊ณผ์ œ

๊น€ํ˜„ํฌยท2026๋…„ 4์›” 23์ผ

๐Ÿ’ก metadata = MetaData()
* MetaData() = ํ…Œ์ด๋ธ”๋“ค์˜ ์„ค๊ณ„๋„๋ฅผ ๋ชจ์•„๋‘๋Š” ์ฐฝ๊ณ 
โžก๏ธ metadata๋ฅผ ๋„ฃ๋Š” ์ด์œ  : ์ด ํ…Œ์ด๋ธ”๋“ค์„ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ
.
โŒ patients = Table('patients', ...)
๐Ÿ…พ๏ธ patients = Table('patients', metadata, ...)
: metadata์— ๋“ฑ๋ก๋œ ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ DB์— ์ƒ์„ฑํ•˜๋ผ๋Š” ์˜๋ฏธ
.
โญ๏ธ ํ๋ฆ„
1๏ธโƒฃ metadata = MetaData() โ†’ ๋นˆ ์„ค๊ณ„๋„ ์ฐฝ๊ณ  ์ƒ์„ฑ
2๏ธโƒฃ Table(..., metadata, ...) โ†’ ํ…Œ์ด๋ธ”์„ ์ฐฝ๊ณ ์— ๋“ฑ๋ก
3๏ธโƒฃ metadata.create_all(engine) โ†’ ์ฐฝ๊ณ ์— ์žˆ๋Š” ๊ฒƒ๋“ค DB์— ์‹ค์ œ ์ƒ์„ฑ


โ€ผ๏ธ ํ‹€๋ฆฐ ์ด์œ : ForeignKey ์™„์ „ ์ž˜๋ชป ์‚ฌ์šฉ

  • โŒ ForeignKey=True
  • ๐Ÿ…พ๏ธ ForeignKey('pk์ด๋ฆ„')

  • nullable = True๋Š” ๊ธฐ๋ณธ๊ฐ’์ด๋ผ ์ ์ง€ ์•Š์•„๋„ ๋จ.


โ€ผ๏ธ ํ‹€๋ฆฐ ์ด์œ : ForeignKey ์™„์ „ ์ž˜๋ชป ์‚ฌ์šฉ

โŒ with engine.connect as () conn:
๐Ÿ…พ๏ธ with engine.connect() as conn:


โ€ผ๏ธ ํ‹€๋ฆฐ ์ด์œ 

result = conn.execute(stmt) # stmt = update(...)
: ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ๋Š” ์ฟผ๋ฆฌ๋กœ!! stmt๋ฅผ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ•˜๋ฉด โ€œ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐโ€๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Œ


SQLAlchemy์—์„œ case

  • ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ฐ’์„ ๋ถ„๋ฅ˜ํ•˜๊ฑฐ๋‚˜ ๊ฐ€๊ณตํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

profile
AI ํ—ฌ์Šค์ผ€์–ด ๊ณต๋ถ€ํ•˜๋Š” ๊ฐ„ํ˜ธ์‚ฌ

0๊ฐœ์˜ ๋Œ“๊ธ€