2016-12-13 2 views
-1

にSQL ALTER文を変換し、私はSQLにクエリを変更し、次のSQLを変換する必要が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を使用すると、MySQLのDDLを発行することができますSQL Serverのでしょうか? –

+0

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

+0

上記の基準に従う必要がある "SndrIdQual"という名前のフィールドをもう1つ追加する必要があります – 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

関連する問題