更改列的数据类型而不破坏表中的数据

时间:2016-05-23 10:25:57

标签: mysql sql

我有员工表,如下所述:

String result =                                       // Text representing the value of our date-time object.
    LocalTime.parse(                                  // Class representing a time-of-day value without a date and without a time zone.
        "03:30 PM" ,                                  // Your `String` input text.
        DateTimeFormatter.ofPattern(                  // Define a formatting pattern to match your input text.
            "hh:mm a" ,
            Locale.US                                 // `Locale` determines the human language and cultural norms used in localization. Needed here to translate the `AM` & `PM` value.
        )                                             // Returns a `DateTimeFormatter` object.
    )                                                 // Return a `LocalTime` object.
    .format( DateTimeFormatter.ofPattern("HH:mm") )   // Generate text in a specific format. Returns a `String` object.
;

我想将团队的类型从+-------------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-----------------------+------+-----+---------+----------------+ | employee_id | int(16) unsigned | NO | PRI | NULL | auto_increment | | first_name | varchar(20) | NO | | NULL | | | last_name | varchar(20) | NO | | NULL | | | team | varchar(20) | NO | | No Team | | +-------------+-----------------------+------+-----+---------+----------------+ 更改为varchar(20),而不会破坏表格中的数据。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

在这种情况下,你可以:

  • 创建数据库备份以确保出现问题,您仍然可以使用最近的副本
  • 将您的数据保存到临时创建的表或列中
  • 进行更改并更改列
  • 检查临时保存与您的数据之间是否存在任何差异,并应对潜在的差异
  • 如果处理得好,请删除临时表/列,如果没有,请重新加载备份并从头开始操作

在这种特殊情况下,应该没有问题,因此您可以决定预防措施是否应该占主导地位。

答案 1 :(得分:0)

ALTER TABLE `employee` CHANGE team team VARCHAR(128) NOT NULL DEFAULT 'No Team';