序文
一般的に使用されるデータベースは、構造化データベースと非構造化データベースの 2 つに大別できます。どのようなデータベースであっても、設計時にはフィールドの種類が必要であり、通常はデータベースに必要なフィールドや種類を事前に設計し、レビューを通じて設計したデータベースが合理的かどうかをレビューしますが、場合によっては使用後にデータベースを作成する必要があります。ある期間、設計したフィールドの型が不合理であることが突然わかります。このとき、このフィールドのデータ型を変更する必要があります。非常に面倒ですが、ビジネスのニーズに合わせて変更する必要があります。データベースを設計するときは、現在に限定されるのではなく、未来的なものでなければなりません。
1.Oracleデータベース
Oracle ではフィールドを更新する必要がある型に遭遇することがありますが、そのときは大きく 2 つのカテゴリに分類されます。
- フィールドに値がない場合にフィールドを更新するタイプ。
- フィールドに値がある場合に更新するフィールドのタイプ。
1.1 フィールドに値がない場合にフィールドの型を更新する
この更新は比較的単純で、フィールドのタイプを直接更新できます。
alter table USER modify status varchar2(10);
1.2 フィールドに値がある場合にフィールドの型を更新する
フィールドに値がある場合、この時点で更新するのは面倒ですが、それでも操作可能です
-- 先更新要改变类型的字段名称
alter table user rename column DATE_TIME to DATE_TIME_OLD;
-- 新建一个字段,为复制值做准备
alter table user add DATE_TIME VARCHAR2(200);
-- 复制 , 把需要改变类型字段的值复制到新添加的字段中
UPDATE user SET DATE_TIME = DATE_TIME_OLD;
-- 删除原字段
alter table user drop column DATE_TIME_OLD;
注: 通常、以前の設計が適切である限り、フィールドのタイプを変更する必要はありません。
2.MySQLデータベース
mysqlでは、oracleほど面倒なことはありません。フィールドに値があるかどうかに関係なく、フィールドを直接更新できます
alter table coc_company modify EXIST_DIAGRAM int(2);
後続
どの方法でフィールドタイプを変更しても、フィールドタイプは一度決まると基本的に変更しないため論理的に無理があり、変更する必要があるとすれば技術が未熟としか言えません。一方で、これは将来を見据えたものがないことを示しているため、データベースを設計する際には将来を見据えて将来性を備え、フィールドのタイプを変更しないようにする必要があります。