No response from the first post, so here goes for one more try...
My employer recently acquired an existing web site that uses a MicroSoft
SQL database and I've been directed to get it running on an in-house
server. As we don't have any Windows servers, I need to recreate the
database in MySQL. The site's developer has supplied me with the schema of
the MS-SQL database and I'm hoping to be able to turn it into a file that I
can run in batch mode through the mysql client to create the database
structure. I'm relatively new to SQL in general and MySQL specifically, so
I'm a little over my head at this point. I will, I'm sure, be learning all
I need to know over time, but I need to get this one project going now and
I would appreciate some guidance to at least tell me if I'm headed in the
right direction.
Anyway, the MS-SQL schema file consists of CREATE TABLE commands for each
table, followed by a series of ALTER TABLE commands. I've been able to get
the CREATE TABLE commands to run by changing, e.g.:
CREATE TABLE [dbo].[clients] (
[login] [varchar] (50) NOT NULL ,
[password] [varchar] (50) NULL
) ON [PRIMARY]
GO
to:
CREATE TABLE clients (
login VARCHAR(50) NOT NULL ,
password VARCHAR(50) NULL
);
So far, so good. There are a couple of column types that I've had to guess
at, but I think I've found reasonable equivalents ([money] becomes
DECIMAL(6,2) and [phone] becomes VARCHAR(20) ).
I'm getting stuck on the ALTER TABLE commands, though. I'm afraid I don't
know quite enough MySQL (or SQL in general) to confidently figure out which
MS-SQL bits are server-specific and can be ignored, and which need to be
changed into equivalent MySQL commands. If I change:
ALTER TABLE [dbo].[dining_cat] WITH NOCHECK ADD
CONSTRAINT [PK__dining_cat__07C12930] PRIMARY KEY CLUSTERED
(
[cat_id]
) WITH FILLFACTOR = 90 ON [PRIMARY]
GO
to:
ALTER TABLE dining_cat ADD
CONSTRAINT PK__dining_cat__07C12930 PRIMARY KEY CLUSTERED
(
cat_id
);
it works, although I'm not sure what, if anything, is being lost by getting
rid of 'WITH NOCHECK' and 'WITH FILLFACTOR = 90'. Then there are commands
that look like:
ALTER TABLE [dbo].[dining_loc] WITH NOCHECK ADD
CONSTRAINT [DF_dining_loc_loc_venue] DEFAULT (0) FOR [loc_venue],
CONSTRAINT [PK_dining_loc] PRIMARY KEY NONCLUSTERED
(
[loc_id]
) WITH FILLFACTOR = 90 ON [PRIMARY]
GO
MySQL gives an error 1064 at 'DEFAULT (0) FOR loc_venue' and I'm not sure
what to do with it. If I knew what the intended effect is, I'm sure I could
figure out the equivalent MySQL syntax. At this point, though, it's still a
bit opaque to me. Any gentle nudge in the right direction would be greatly
appreciated.
TIA!
--
Christopher Bort | [EMAIL PROTECTED]
Webmaster, Global Homes | [EMAIL PROTECTED]
<http://www.globalhomes.com/>
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php