sql >> Databáze >  >> RDS >> Sqlserver

Přidejte více omezení v jednom příkazu

Máte tři problémy:

  1. Příkaz ukončíte pomocí ; na konci druhého řádku kódu.
  2. Máte FOR MEMBER_ID v posledním příkazu, což by pravděpodobně mělo být FOR Sys_date .
  3. Opakujete ADD ale nemusí .

Za předpokladu této struktury tabulky:

CREATE TABLE Member (MEMBER_ID BIGINT NOT NULL, Sys_date DATETIME);

Tento DDL bude fungovat:

ALTER TABLE MEMBER
ADD CONSTRAINT U_MEMBERID UNIQUE(MEMBER_ID), primary key (MEMBER_ID),
    CONSTRAINT Sys_date DEFAULT GETDATE() FOR Sys_date;

Viz tento sqlfiddle .

můžete teoreticky to také najdete na stránce MSDN na ALTER TABLE , i když bych klidně připustil, že tyto specifikace mohou být těžko čitelné. Zde je ukázka toho, jak to vysvětlují:

ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name 
{ 
    ALTER COLUMN column_name 
    -- Omitted....
    | ADD 
    { 
        <column_definition>
      | <computed_column_definition>
      | <table_constraint> 
      | <column_set_definition> 
    } [ ,...n ]
    -- Omitted....

ADD klíčové slovo se vyskytuje jednou a } [ ,...n ] bit vám říká, že můžete opakovat bit mezi {závorkami} n krát oddělených , .



  1. Jaký je nejlepší datový typ pro ukládání URL v databázi MySQL?

  2. Jaro, Hibernate, Blob líné načítání

  3. Jak automaticky uložit výběr v ComboBoxu do MYSQL v PHP bez tlačítka Odeslat?

  4. Jak zlepšit rychlost zápisu InnoDB za sekundu v MySQL DB