本日作業分
このコミットが含まれているのは:
+36
@@ -172,6 +172,42 @@ class VideoDao:
|
|||||||
videos.append (self._create_dto_from_row (row, with_relation_tables))
|
videos.append (self._create_dto_from_row (row, with_relation_tables))
|
||||||
return videos
|
return videos
|
||||||
|
|
||||||
|
def upsert_all (
|
||||||
|
self,
|
||||||
|
videos: list[VideoDto],
|
||||||
|
with_relation_tables: bool = True,
|
||||||
|
) -> int:
|
||||||
|
with self.conn.cursor () as c:
|
||||||
|
for video in videos:
|
||||||
|
c.execute ("""
|
||||||
|
INSERT INTO
|
||||||
|
videos(
|
||||||
|
code,
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
uploaded_at,
|
||||||
|
deleted_at)
|
||||||
|
VALUES
|
||||||
|
(
|
||||||
|
%s,
|
||||||
|
%s,
|
||||||
|
%s,
|
||||||
|
%s,
|
||||||
|
%s)
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
code = VALUES(code),
|
||||||
|
title = VALUES(title),
|
||||||
|
description = VALUES(description),
|
||||||
|
uploaded_at = VALUES(uploaded_at),
|
||||||
|
deleted_at = VALUES(deleted_at)""", (
|
||||||
|
video.code,
|
||||||
|
video.title,
|
||||||
|
video.description,
|
||||||
|
video.uploaded_at,
|
||||||
|
video.deleted_at))
|
||||||
|
video.id_ = c.lastrowid
|
||||||
|
# TODO: with_relation_tables が True の場合,子テーブルも UPSERT すること
|
||||||
|
|
||||||
def _create_dto_from_row (
|
def _create_dto_from_row (
|
||||||
self,
|
self,
|
||||||
row,
|
row,
|
||||||
|
|||||||
新しい課題から参照
ユーザをブロックする