2016-02-09 2 views
1

Я использую Oracle sql developer. Мне нужно создать таблицу:Условный ввод в Oracle SQL

EXTPROG (ActId, ActName) 

ActId Varchar2(4), 
ActName Varchar2(10) 

это две колонки. ActId всегда должен начинаться с A

Как это сделать при создании таблицы?

+3

Добавить контрольное ограничение, например. 'ActId как 'A%''. – jarlh

ответ

0

Это зависит от функциональности поля ActId.

  • Если вы хотите выполнить проверку после вставки (например, импортировать данные из где-то) - jarlh-х advice подходит идеально. Я бы также посмотрел на вариант DEFERRABLE для ограничений, в этом случае он может быть полезен.
  • Если ActId суррогат первичный ключ (или должны быть созданы как-то), и вы хотите, чтобы заполнить его самостоятельно, я бы порекомендовал вам создать последовательность для этих целей:
     
    insert 
        into EXTPROG (ActId, ActName) 
    values ('A' || lpad(to_char(EXTPROG_SEQ.NextVal), 3, '0'), 'SomeName') 
    
    В этом случае принимать во внимание относительно небольшой размер вашего поля ActId.