[SQL2008/MySQL51] Migratie van databases geeft syntaxfouten

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
Ik probeer een database van MSSQL 2008 te migreren naar MySQL 5.1 m.b.v. SQL Server Management Studio en de import/export wizard. Ik heb daarvoor Connector/Net 6.0.4 van MySQL geinstalleerd.

Ik doe een zo simpel mogelijke 1-op-1 kopie van een tabel in een database, maar het gaat gelijk al fout. Ik selecteer 1 tabel om te kopiëren en druk op next. Ik wordt dan direct al met de volgende foutmelding geconfronteerd:
code:
1
2
3
4
5
[dbo].[Icon] -> "Icon":

          - The data type could not be assigned to the column "IPAddress" in ".Net Framework Data Provider for MySQL".
          - The data type could not be assigned to the column "Referer" in ".Net Framework Data Provider for MySQL".
          - The data type could not be assigned to the column "Agent" in ".Net Framework Data Provider for MySQL".

Het datatype waar hij over zeurt is in de MSSQL omgeving bijv een varchar(150). Ik neem aan dat MySQL toch ook wel varchars ondersteunt :?

Anyway, ik druk dus op Edit Mappings, want ze moeten toch echt over. Daar zie ik bij de varchar-velden dat het datatype "200" is (dat is dus NIET de lengte, die is weer anders). Als ik die verander naar "VARCHAR" (MySQL houdt van hoofdletters zeker) dan mag ik wel verder in de wizard. So far so good dus.

Daarna kun je eigenlijk niks boeiends meer instellen, behalve dat die wel of niet direct moet beginnen. Nouja, liever wel he :)

Vervolgens gaat er vanalles goed, behalve de stap "Execute". Die geeft een syntaxfout:
code:
1
2
3
4
5
6
7
Error 0xc002f210: Preparation SQL Task 1: Executing the query "CREATE TABLE "Icon" (
"ID" INT NOT NULL,
"IPAddr..." failed with the following error: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"Icon" (
"ID" INT NOT NULL,
"IPAddress" VARCHAR(15),
"Time" DATE,
"Referer" ' at line 1". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

Problemen met de query zou kunnen, maar die tool maakt de query toch zelf, en ik mag toch verwachten dat ze dat wel kunnen. Ik weet niet wat de ResultSet property is, waar ik die kan zetten of wat ie dan moet zijn. Parameters staan volgens mij goed, en heb ik allemaal op default gelaten. Ik heb alleen serveradres, username en password ingevuld en die combinatie werkt.

Trouwens jammer dat ie niet de volledige query weergeeft die fout gaat (kan ik die nog ergens opvissen eigenlijk?)

Dus wat kan er dan aan de hand zijn?

日本!🎌


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

_Thanatos_ schreef op vrijdag 14 augustus 2009 @ 20:25:

Trouwens jammer dat ie niet de volledige query weergeeft die fout gaat (kan ik die nog ergens opvissen eigenlijk?)
Meestal onder Script (in SQL Mangler) en dan save as file.
Dus wat kan er dan aan de hand zijn?
datatypes, velden die reserved names hebben voor MySQL, dat soort dingen.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Topicstarter
Maar de veldnamen zijn escaped... Zoals ik van een dergelijke tool ook verwacht eigenlijk.

Datatypes zeurt ie al eerder over (zoals ik schreef). Bovendien gebruik ik ook alleen INT, VARCHAR en DATE. Nou is mijn MySQL kennis enigzins beperkt, maar deze drie heeft ie toch echt wel dacht ik.

SQL Mangler heb ik trouwens niet zoveel aan. Dat is ASP classic en dat draait niet op Apache ;)

Trouwens, een versimpelde query:
SQL:
1
2
3
CREATE TABLE "Icon" (
  "ID" INT NOT NULL
);

Uitvoeren via SQLyog geeft dezelfde syntax error :?
Terwijl dit feitelijk gewoon is wat MSSMS icm Connector/Net genereert...

/edit
Hm, met MySQL's eigen Migration Toolkit lukt het wel om de boel te kopiëren. Toch vaag dat ik die syntax niet kan gebruiken.

[ Voor 31% gewijzigd door _Thanatos_ op 14-08-2009 22:25 ]

日本!🎌


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

_Thanatos_ schreef op vrijdag 14 augustus 2009 @ 20:38:
SQL Mangler heb ik trouwens niet zoveel aan. Dat is ASP classic en dat draait niet op Apache ;)
SQL Mangler is een wat gemene benaming voor SQL Management studio, sorry ;) Die van 2000 noemen we hier @ work al zo, en dat is een beetje blijven hangen :+
/edit
Hm, met MySQL's eigen Migration Toolkit lukt het wel om de boel te kopiëren. Toch vaag dat ik die syntax niet kan gebruiken.
Je zou eens kunnen kijken of de SQL scripts (de output) exact hetzelfde is vanuit MAnagement Studio en de MT.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device