freshman2017
Goto Top

MSSQL Script für MySQL nutzen?

Guten Tag liebe Gemeinde,

ich nutze derzeit für einen Import einer TXT Datei in MSSQL unten stehenden Code. Ich kann diesen ja über sqlcmd ausführen lassen . Meine Frage, wie wäre der Code, wenn ich das ganze mit mysql nutzen möchte?

IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = N'TEST')  

BEGIN 
		CREATE DATABASE [TEST]
END

GO

USE TEST

GO

/***********************************************************************************************************************************************************/

IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='test_1_tmp')  
DROP Table test_1_tmp

GO

IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='test_1_tmp')  
CREATE TABLE test_1_tmp

	(
	ID VARCHAR(8000)
	)

GO

IF NOT EXISTS (SELECT column_name FROM INFORMATION_SCHEMA.columns WHERE table_name = 'test_1_tmp' AND column_name = 'wert1')  
 
ALTER TABLE test_1_tmp ADD wert1 VARCHAR(8000)

GO

IF NOT EXISTS (SELECT column_name FROM INFORMATION_SCHEMA.columns WHERE table_name = 'test_1_tmp' AND column_name = 'wert2')  
 
ALTER TABLE test_1_tmp ADD wert2 VARCHAR(8000)

GO

/***********************************************************************************************************************************************************/


BULK INSERT test_1_tmp
FROM 'C:\ProgramData\test.txt' WITH  

	(
	FIELDTERMINATOR = ';',  
	ROWTERMINATOR = '\n'  
	)

GO

/***********************************************************************************************************************************************************/

IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='test_1')  
CREATE TABLE test_1

	(
	ID VARCHAR(8000)
	)

GO

IF NOT EXISTS 
	(
	SELECT column_name 
	FROM INFORMATION_SCHEMA.columns 
	WHERE table_name = 'test_1'  
	AND column_name = 'wert1'  
	)
 
ALTER TABLE test_1 ADD wert1 VARCHAR(8000)

GO

IF NOT EXISTS 
	(
	SELECT column_name 
	FROM INFORMATION_SCHEMA.columns 
	WHERE table_name = 'test_1'  
	AND column_name = 'wert2'  
	)
 
ALTER TABLE test_1 ADD wert2 VARCHAR(8000)

GO

/***********************************************************************************************************************************************************/

MERGE test_1 t 

USING test_1_tmp s ON 
	
	(
	s.ID = t.ID
	)
	
WHEN MATCHED THEN UPDATE SET 
    
	t.ID = s.ID,
	t.wert1 = s.wert1,
	t.wert2 = s.wert2
	
WHEN NOT MATCHED BY TARGET THEN INSERT 
	
	(
	ID, wert1, wert2
	)
    
VALUES
	
	(
	s.ID, s.wert1, s.wert2
	);

/***********************************************************************************************************************************************************
	
WHEN NOT MATCHED BY SOURCE THEN DELETE;

************************************************************************************************************************************************************/

GO

/***********************************************************************************************************************************************************/

IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='test_1_tmp')  

DROP Table test_1_tmp

GO

/***********************************************************************************************************************************************************/
/***********************************************************************************************************************************************************/
/***********************************************************************************************************************************************************/

Content-Key: 537344

Url: https://administrator.de/contentid/537344

Printed on: April 18, 2024 at 02:04 o'clock

Member: it-frosch
it-frosch Jan 20, 2020 updated at 09:39:33 (UTC)
Goto Top
Hallo freshman,

nimm dir die MYSQL Syntax Referenz deiner verwendeten MySQL Version
und setze dein Skript um.
Das ist ein gute Übung, wenn du soetwas bisher noch nicht gemacht hast.

Beispiel:
Bulk insert (MSSQL) wird LOAD DATA (MySQL) MySQL Syntax


grüße vom it-frosch
Member: ukulele-7
ukulele-7 Jan 20, 2020 at 08:46:51 (UTC)
Goto Top
So ziemlich alles wäre anders...