On Mar 13, 2007, at 12:14 PM, James Masters wrote:
> I'm converting an old textual database to MySQL with Rose.
>
> MySQL has 3 options for a date:
> a date
> 0000-00-00
> NULL
my suggestion:
don't declare your date column as "NOT NULL" ,
when migrating , convert 0000-00-00 to NULL
the purpose of a date column is to put a date in it.
the purpose of a null/not null restriction, is whether or not you
must define that column
0000-00-00 is a dirty hack to pretend that you have a value in a not
null field. its defeating the concept of null/not null.
> My scripts currently have a date either as "" or a date. So
> presumably my
> empty date "" needs to be mapped to either 0000-00-00 or NULL in
> MySQL.
you should handle the "" as undef.
undef means there is no date
"" means the date is an empty string
> date fields in MySQL schema, is it best for me to allow NULL and
> then make
> empty dates map to NULL? Or is it best to disallow NULL and then
> make empty
> dates map to 0000-00-00?
allow NULL and treat empty dates as undef in your perl code
a) 0000-00-00 is a mysqlism for putting null dates in a not-null
field -- most other dbs will not accept that as a date.
b) many apps / modules across languages are designed to throw errors
on invalid dates -- especially ones like that
> And final question, how DO you set a field to NULL with Rose, anyway?
undef
// Jonathan Vanasco
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
| SyndiClick.com
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
| FindMeOn.com - The cure for Multiple Web Personality Disorder
| Web Identity Management and 3D Social Networking
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
| RoadSound.com - Tools For Bands, Stuff For Fans
| Collaborative Online Management And Syndication Tools
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Rose-db-object mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rose-db-object