If you’re using MySql, and you need to modify multiple columns in one table, you may have come (or will come) across the same problem I ran into the other day. Basically, you can easily modify one column (as found in the documentation):
ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
But what happens when you need to modify multiple columns? I must be a bad Googler because I could not find much talk on the topic. I ran across techonthenet, which talks about multiple modifications, but since I could not get it to work I was thinking it is an Oracle or SqlServer query:
ALTER TABLE supplier
MODIFY (
supplier_name varchar2(100) not null,
city varchar2(75)
)
Much frustration later, I randomly tried to format the query by using the keyword MODIFY
for each column, like so:
ALTER TABLE supplier
MODIFY supplier_name varchar(255) NULL,
MODIFY city varchar(255) NULL
As unexpected, it worked! Maybe some SQL experts out there can clear up the details, and confirm that this is the proper way of handling multiple column modifications in MySql. Better yet, point us to some good reference material on the topic.
Documentation at MySQL’s site provides the guidance:
http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification] …
note the [,alter_specification]… indicates that you can have as many alter specifications after the alter table as you need.
Teehee, thanks for making me smile this morning Ryan… did you forget your caffeine fix? :P
Well, don’t I feel stupid. But hey, at least now I can properly read MySql documentation. Richard, I’m glad I could help in the laughing department :)
> But hey, at least now I can properly read MySql documentation.
Nice one, I must admit this little example makes me understand the MySQL syntax better myself, :D