How To Change The Data Type Of A Column In MySQL


Short Answer

1
ALTER TABLE table_name MODIFY column_name NEW_DATA_TYPE;

Example

Given a table EMPLOYEE, change the data type of the yoe (year of experience) column from INTEGER to INTEGER UNSIGNED.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- create
CREATE TABLE EMPLOYEE (
  empId INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  dept TEXT NOT NULL, 
  yoe INTEGER NOT NULL
);

-- insert
INSERT INTO EMPLOYEE VALUES (0001, 'Clark', 'Sales', 5);
INSERT INTO EMPLOYEE VALUES (0002, 'Dave', 'Accounting', 3);
INSERT INTO EMPLOYEE VALUES (0003, 'Ava', 'Sales', 8);

ALTER TABLE EMPLOYEE MODIFY yoe INTEGER UNSIGNED NOT NULL;

DESCRIBE EMPLOYEE;

Table EMPLOYEE:

1
2
3
4
5
6
7
+-------+-------+------------+-----+
| empId	| name  | dept       | yoe |
+-------+-------+------------+-----+
|     1 | Clark	| Sales      | 5   |
|     2	| Dave	| Accounting | 3   |
|     3	| Ava	| Sales      | 8   |
+-------+-------+------------+-----+

Query output:

1
2
3
4
5
6
7
8
+-------+--------------+------+-----+---------------+
| Field | Type         | Null | Key | Default Extra |
+-------+--------------+------+-----+---------------+
| empId | int          | NO   | PRI | NULL          |
| name  | text         | NO   |     | NULL          |
| dept  | text         | NO   |     | NULL          |
| yoe   | int unsigned | NO   |     | NULL          |
+-------+--------------+------+-----+---------------+




Related Posts

How To Specify Unique Constraint For Multiple Columns In MySQL

How to make multiple columns unique (together) in an existing...

How To Select One Row Per ID With Max Value On A Column

Suppose we have the following REIMBURSEMENT table, find the max...

How To Get The Size Of A Table In MySQL

How to get the size of a table in MySQL...

How To Get The Size Of A Database In MySQL

How to get the size of a database in MySQL...

How To Concatenate Multiple Rows Into One Field In MySQL

How to concatenate multiple rows into one field in MySQL...

How To Change The Data Type Of A Column In MySQL

Given a table EMPLOYEE, change the data type of the...