2016-12-13 28 views
-1

我需要轉換下面的SQL更改查詢到SQL,轉換SQL ALTER語句到MySql

SQL:

Alter table Registry 
Add SndrIdQual Char(2) NULL CONSTRAINT 
[DF_Registry_PartIdQual] DEFAULT ('') 

我試着用下面的一個:

MySQL的:

Alter table Registry 
Add SndrIdQual Char(2) NULL DEFAULT '' 
CONSTRAINT `DF_Registry_PartIdQual`; 

,但它給了我以下錯誤:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CONSTRAINT `DF_Registry_PartIdQual`' 

我也嘗試過不同的情況,但我沒有找到任何解決方案,請幫助我。

當我生成一個DDL查詢我有以下

CREATE TABLE [dbo].[Registry](
[UniqCode] [uniqueidentifier] ROWGUIDCOL NOT NULL, 
[AddedAt] [timestamp] NOT NULL, 
[SndrIdQual] [char](2) NULL, 
PRIMARY KEY NONCLUSTERED 
(
[UniqCode] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], 
UNIQUE CLUSTERED 
(
[ClmRegNum] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 
ALTER TABLE [dbo].[Registry] ADD CONSTRAINT [DF_Registry_UniqCode] DEFAULT (newid()) FOR [UniqCode] 
GO 
ALTER TABLE [dbo].[Registry] ADD CONSTRAINT [DF_Registry_PartIdQual] DEFAULT ('') FOR [SndrIdQual] 

GO

+0

你DDL是SQL Server可以發佈MySQL的DDL? –

+0

CREATE TABLE'registry'( 'UniqCode' BIGINT(20)NOT NULL AUTO_INCREMENT, 'AddedAt'日期時間NOT NULL, PRIMARY KEY('UniqCode') UNIQUE KEY'UQ__XRHCII_E__810DC23C29A76A3F'('ClmRegNum') )ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci; – Sagar

+0

現在我需要添加一個名爲「SndrIdQual」的字段,該字段應該遵循上述標準 – Sagar

回答

0

可能是你只需要這樣:

ALTER TABLE database.table 
     ADD COLUMN SndrIdQual Char(2) NULL DEFAULT '' 
+0

在我的查詢中沒有任何外鍵沒有工作,我能夠用fk編寫查詢,但在這種情況下,他們只使用「CONSTRAINT」關鍵字,我不明白。 – Sagar

+0

在你的表中PartIdQual是存在的,或者你需要爲partidqual創建fk .. @ Sagar – Chanukya

+0

我在我的問題中添加了完整的DDL語句,但沒有找到任何fk。 – Sagar