AI質問 解答例(MYSQL create tabel)

job_illustrator_pc_woman-e ※Web開発

Bird の解答を実際に確認してみたところ エラーが発生します。

訂正を入れております。

AIへの質問

このコードで テーブルを作成できますが もし 該当のテーブルがすでにある場合はテーブルを削除してクリエートするコードに変更してください。

use school;

create table student

(

student_rec   int auto_increment primary key comment ‘内部番号’,

student_name  varchar(32)           comment ‘児童の名前’,

student_kakari int               comment ‘係の番号’,

student_regist datetime            comment ‘登録日時’,

student_update datetime            comment ‘更新日時’

);

— 生徒テーブル

create table student

(

student_rec   int auto_increment primary key comment ‘内部番号’,

student_name  varchar(32)          comment ‘児童の名前’,

student_kakari int(12)            comment ‘係の番号’,

student_regist datetime            comment ‘登録日時’,

student_update datetime            comment ‘更新日時’

);

— 係テーブル

create table kakari

(

kakari_rec  int  auto_increment primary key  comment ‘内部番号’,

kakari_name  varchar(32)  comment ‘係の名前’,

kakari_regist  datetime  comment ‘登録日時’,

kakari_update  datetime  comment ‘更新日時’

);

— 成績テーブル

create table score

(

score_rec  int  auto_increment primary key  comment ‘内部番号’,

score_student_rec  int(8)  comment ‘児童番号’,

score_score  int(4)  comment ‘得点’,

score_year  int(4)  comment ‘獲得年’,

score_regist  datetime  comment ‘登録日時’,

score_update  datetime  comment ‘更新日時’

);

AIの解答

変更後のコードは以下のようになります。

SQL

use school;

-- テーブルの存在チェック この部分でエラーが出ます
--if exists (select * from information_schema.tables where table_name = 'student') then
-- テーブルの削除
--  drop table student;
--end if;

-- テーブルの存在チェックして テーブルがあればテーブルを削除
drop table if exists student;

create table student
(
student_rec   int auto_increment primary key comment '内部番号',
student_name  varchar(32)          comment '児童の名前',
student_kakari int(12)            comment '係の番号',
student_regist datetime            comment '登録日時',
student_update datetime            comment '更新日時'
);


-- 係テーブル エラーになります
--if exists (select * from information_schema.tables where table_name = 'kakari') then
-- テーブルの削除
--drop table kakari;
--end if;

-- テーブルの存在チェックして テーブルがあればテーブルを削除
drop table if exists kakari;


create table kakari
(
kakari_rec  int  auto_increment primary key  comment '内部番号',
kakari_name  varchar(32)  comment '係の名前',
kakari_regist  datetime  comment '登録日時',
kakari_update  datetime  comment '更新日時'
);

-- 成績テーブル
--if exists (select * from information_schema.tables where table_name = 'score') then
-- テーブルの削除
--drop table score;
--end if;

-- テーブルの存在チェックして テーブルがあればテーブルを削除
drop table if exists score;

create table score
(
score_rec  int  auto_increment primary key  comment '内部番号',
score_student_rec  int(8)  comment '児童番号',
score_score  int(4)  comment '得点',
score_year  int(4)  comment '獲得年',
score_regist  datetime  comment '登録日時',
score_update  datetime  comment '更新日時'
);

コードは慎重に使用してください。詳細content_copy

変更点は以下のとおりです。

  • 各テーブルの作成前に、exists 関数を使用して、そのテーブルがすでに存在するかどうかをチェックします。
  • テーブルが存在する場合は、drop table 文を使用して、そのテーブルを削除します。
  • テーブルが存在しない場合、元のコードと同じようにテーブルを作成します。

具体的には、以下の処理を追加しています。

SQL

Bird の解答コードこの部分でエラーがでます。

-- このコードではエラーになります
if exists (select * from information_schema.tables where table_name = 'student') then

  -- テーブルの削除
  drop table student;

end if;

こちらを使用します。

-- テーブルの存在チェックして テーブルがあればテーブルを削除
drop table if exists student;
drop table if exists kakari;
drop table if exists score;

コードは慎重に使用してください。詳細content_copy

この処理は、information_schema.tables テーブルから、table_namestudent である行が存在するかどうかをチェックします。存在する場合は、drop table student 文を使用して、student テーブルを削除します。

他のテーブルについても、同様の処理を追加します。

この変更により、既存のテーブルがあっても、そのテーブルを削除して、新しいテーブルを作成するようにすることができます。

タイトルとURLをコピーしました