Programming Tutorials

Changing the Structure of an Existing Table in MySQL

By: Sathya Narayana in MySQL Tutorials on 2010-10-24  

To change the structure of the table, follow these steps:

  1. First you'll add the price field to the table, using the ADD command and specifying the properties of the field:

    mysql> ALTER TABLE book ADD (price INTEGER);

    So here you've added a field called price that contains integer values.

  2. Why would you represent price as an integer when a decimal would seem much more logical? Well, it was a deliberate mistake, so remove this field using the DROP command:

    mysql> ALTER TABLE book DROP price;
  3. Now add the field again, but this time as a decimal field, with a maximum of five characters, two of which are after the decimal point:

    mysql> ALTER TABLE book ADD (prize DECIMAL(5,2));
  4. Whoops, another boo-boo. This time, the data type of the field is correct (a decimal field), but the name of the field is wrong. Modify the field using the CHANGE command, rather than deleting it and creating a new one:

    mysql> ALTER TABLE book CHANGE prize price DECIMAL(5,2);

    At last, the field is just how you want it. Note that you had to specify all of the properties of the new field when you used the CHANGE command, even though you just wanted to change the field name.

  5. You should know about a couple of other SQL commands used with ALTER TABLE. The first is the ALTER command for changing field definitions. For instance, if you wanted to set the status field to a default value of P for published, you could use the following:

    mysql> ALTER TABLE book ALTER status SET DEFAULT 'P';
  6. The other command is MODIFY, which can change the entire definition of a particular field. Say, to be awkward, you wanted to change the price field back into an integer field. Then you could use the following:

    mysql> ALTER TABLE book MODIFY price INTEGER;

    If you try this last command, change the field back to a decimal afterward because you'll need it to be that type when you start inserting data

Add Comment

* Required information


No comments yet. Be the first!

Most Viewed Articles (in MySQL )

Use a dynamic table name in a SQL Server SELECT statement

mysqldumpslow in MySQL - Summarize slow query log.

Inserting Data into Tables in MySQL

Windows cannot access the specified device, path or file. You may not have the appropriate permissions to access them.

sql if null then 0

Finding slow queries in MySQL - Enable slow query log.

Table __________ is marked as crashed and should be repaired.

Modifying data and using WHERE clause in MySQL

Changing the Structure of an Existing Table in MySQL

Querying the Database in MySQL

ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Modify a auto_increment id column in mysql to accept a 5 digit random number instead

Sample my.cnf (my.ini) for MySQL with 1GB RAM

What is SQL Injection

Deleting Data in MySQL

Latest Articles (in MySQL)