Changing the Structure of an Existing Table in MySQL

By: Sathya Narayana Viewed: 153236 times  Printer Friendly Format    

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

Most Viewed Articles (in MySQL )

Latest Articles (in MySQL)

Comment on this tutorial