>> Hi Folks,
>>
>> Newbie question....
>>
>> I have a mysql table with 100 fields, currently all do not allow nulls.
>> Rather than hand typing in phpMyAdmin, I would like a way to loop through
>> all fields and update them to allow nulls....
>>
>> My Beginning attempt needs help...
>>
>>
>> $i = 1;
>> while ($i <= 100):
>>
>> // how do I word this to just change whatever field we are on to allow
>> nulls?
>>
>> $sql = 'ALTER TABLE `mytable` ?*update*? `'.$???WhatEverField??[$i].'`
>> ?ALLOWNULL?;';
>>
>> //mysql_query($sql);
>>
>> $result = mysql_query($sql) or die("<br /><br /> Could not renumber dB $sql
>> <br /><br />" . mysql_error());
>>
>>
>> $i++;
>> endwhile;
>>
>>
>> Thanks in advance
>
>Hi,
>
>The MySQL syntax to alter a column is:
>
> ALTER TABLE `table` MODIFY `column` BIGINT NOT NULL;
>
> [ http://dev.mysql.com/doc/refman/5.1/en/alter-table.html ]
>
>The sql statement
>
> SHOW COLUMNSFROM `table`;
>
> [ http://dev.mysql.com/doc/refman/5.1/en/show-columns.html ]
>
>will give you a list of all the fields with there type, default values, null
>etc...
>You can then use this in the loop to find all the fields where null=NO.
>
>Warning from the manual:
>
> When you change a data type using CHANGE or MODIFY, MySQL tries to
> convert existing column values to the new type as well as possible.
>
> Warning
> This conversion may result in alteration of data. For example, if you
> shorten a
> string column, values may be truncated. To prevent the operation from
> succeeding if conversions to the new data type would result in loss of
> data, enable
> strict SQL mode before using ALTER TABLE (see Section 5.1.6, “SQL Modes”).
>
>I don't think this will affect you but bare it in mind.
>
>Regards
>
>Ian
>--
You can also retrieve the field types with:
SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME =
'whatever';
Which might help the programmatic approach.