Adding constraints to an existing table

Hello

I consulted the books forum, documentation, internet and text but cannot find the correct SQL command to add constraints to an existing table

Obviously I would

ALTER TABLE ADD CONSTRAINT Whitemeat Turkey

But what comes next is confusing, the Whitemeat column values can be any value other than dinner, gravy, pumpkin or Sauce

Any help would be great

Thank you

Hello

user8998591 wrote:
Sorry,

That's what I try to run

ALTER TABLE TURKEY add
CONSTRAINT TURKEY_WHITEMEAT_CK CHECK WHITEMEAT NOT IN ('Dinner', 'Gravy', 'Pumpkin', 'Sauce');

And this is the error message I get

Error report:
SQL Error: ORA-00906: missing left parenthesis
00906. 00000 -  "missing left parenthesis"
*Cause:
*Action:

Thank you for your help

See the [Manual of the SQL language | http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_3001.htm#sthref5176] for the correct syntax.
The condition after the keyword CHECK must be in brackets.
To add a CHECK constraint to an existing table, I think that you must change the column.

ALTER TABLE turkey
MODIFY  ( whitemeat     CONSTRAINT     turkey_whitemeat_ck
                 CHECK          ( whitemeat NOT IN ( 'Dinner'
                                            , 'Gravy'
                                      , 'Pumpkin'
                                      , 'Sauce'
     )                    )             );

Published by: Frank Kulash, 22 January 2010 16:37

Tags: Database

Similar Questions

  • Adding data to the existing Table

    Hello..

    IAM, try to import the oracle dump file. but the tables in dump files already exist in my database. How can I add data to existing tables... pls suggest me.

    Thank you.

    You don't say what you use the tool...

    If you use the traditional import utility (imp) then you can tell him to ignore the fact that there is already a table: IGNORE = Y.

    And I can't import datapump has similar features.

  • Adding a constraint TO an existing table

    Hello

    I had this problem because of the existing data. My question is in my table, I want to add a unique two-column constraint, but I can't add this due to existing extensible data. And I can't do a repair data for correct extensible database since the customer is completely on these data so that we can not the decision to repair the data.

    As a solution, I have try this method by adding a function to check the data repeatedly before inserting data into the table. It works fine for a user, but when it come to multiple users, it does not work because users can connect to the database and can make their transactions at the same time.

    My question is; is there a way of oracle to add a constraint to data that may add in the future not to the old existing data?

    Thank you
    Darex.

    Dear Darex
    Try to understand below and check first with the same script and then apply on your data
    If you understand the logic need not go for function...

    Concerning

    --
    Ali...

    Hello

    How it works:

    Create table a (a number);

    ALTER table an add constraint unique (a) gpu can be delayed delay; -Note of this declaration

    ALTER table a constraint disable gpu;

    insert into a values (1);
    insert into a values (1);
    commit;

    ALTER table an enable novalidate constraint gpu;
    SQL > table changed
    SQL >
    Select * from a;

    A
    -----
    1
    1
    SQL > insert into a values (1);

    1 line of creation.

    SQL > commit;
    Commit
    *
    ERROR on line 1:
    ORA-02091: transaction cancelled
    ORA-00001: unique constraint (SYSTEM. GPU) violated

    Therefore, the constraint must be created under the name may be deferred.

    Thank you

  • import an existing table how do enable constraints etc...

    Friends,

    OS: RHEL AS 3
    DB: 9iR2

    I exported a production table because I added a new column with data in this table.
    Now, I want to import that table in the test. But this picture is already exists in the test.
    for this I will drop the table with the cascade option.
    1. what should I do before falling from the table. I mean I check for dependants and constraints and how?
    2. after importing what should I do to allow dependents and constraints?

    Thank you

    Hello..

    The SYS_Cnnnnn are the constraints that oracle awards for you. Those will be also activated when you import the table.

    Test

    SQL> create table scott.ACCOUNTMST
      2  (dept_num number(5) primary key,
      3  dept_name varchar2(10),
      4  emp_name varchar2(10),
      5  emp_id varchar2(5)
      6  constraint emp_cons not null);
    
    Table created.
    
    SQL> select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME from dba_constraints where table_name like 'ACCOUNTMST';
    
    OWNER                          CONSTRAINT_NAME                C TABLE_NAME
    ------------------------------ ------------------------------ - ------------------------------
    SCOTT                          EMP_CONS                       C ACCOUNTMST
    SCOTT                          SYS_C005482                    P ACCOUNTMST
    
    *Exported the table from another session*
    
    About to export specified tables via Conventional Path ...
    Current user changed to SCOTT
    . . exporting table                     ACCOUNTMST
                                                                0 rows exported
    Export terminated successfully without warnings.
    
    Then dropped the table
    SQL> drop table scott.ACCOUNTMST;
    
    Table dropped.
    
    SQL> select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME from dba_constraints where table_name like 'ACCOUNTMST';
    
    no rows selected
    
    *Imported the table back*
    
    Export file created by EXPORT:V10.02.01 via conventional path
    import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
    . importing SCOTT's objects into SCOTT
    . . importing table                   "ACCOUNTMST"          0 rows imported
    Import terminated successfully with warnings.
    
    *Checked for the constraints*
    
    SQL> select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME from dba_constraints where table_name like 'ACCOUNTMST';
    
    OWNER                          CONSTRAINT_NAME                C TABLE_NAME
    ------------------------------ ------------------------------ - ------------------------------
    SCOTT                          EMP_CONS                       C ACCOUNTMST
    SCOTT                          SYS_C005484                    P ACCOUNTMST
    

    HTH
    Anand

  • Add the constraint not NULL in the existing table that has null values

    Hello

    I want to add a constraint not null to and an existing table, but the table already contains values null in this column.

    EMP

    Emp_id name

    1 axada

    2

    3 sdkdd

    Here is already the data IE 2 empid is Null as name. I must add a fool of constraint not null which new values will not be null, but I don't want to change the data of exisitng alreadt which is null.

    Hello

    "The opposite": NOVALIDATE does not validate the data that is ALREADY in the table, but do not allow the insertion of a NULL value.

    Have you tried my sample code?

    CREATE TABLE MaTable (x NUMBER PRIMARY KEY, y NUMBER);

    INSERT INTO myTable VALUES (1, 123);

    INSERT INTO myTable VALUES ( 2, NULL );

    INSERT INTO myTable VALUES (3, 456);

    ALTER TABLE mytable MODIFY (y NOT NULL NOVALIDATE );

    INSERT INTO myTable VALUES (4, 678);

    INSERT INTO myTable VALUES ( 5, NULL );

    SELECT * FROM MyTable;

    '2' line was inserted with null before the creation of the NOT NULL constraint, this line remains "as what" at the end of the trial.

    '5' line trying to insert a NULL value after creating the NOT NULL constraint, which is denied.

    Best regards

    Bruno.

  • Adding rows or cells to existing Tables in Dreamweaver CC

    Dear Sir/Madam,

    Why can't I add additional cells or columns to an existing table?

    I have a database that I've frequently updated, but I note that since I upgraded my software from Studio MX 2004 to Adobe Dreamweaver CS5.5 (try now Dreamweaver CC) and the table options (such as adding rows/columns) are not available.

    What is the best way to list the alphabetical links. Should I just list people without a table or I can use what I already designed (without having to create a new page, since it will age to enter all the data again)?

    I look forward to hearing from you soon.

    Concerning

    Suzanne

    Make sure that you are in Design view, not to live.

    The editor in Live mode does not give you the standard table options.

    EDIT: I forgot to mention, if your pages use a fluid grid, Fashion Design presentation won't be available if you use DW CC 20141, deleted Adobe Design view for GFL in this version. Here is a discussion which has a couple of workarounds: Re: is it possible to display the design view in the fluid grid pages? and here is the feature request to vote in the section ideas if you are using the latest version: provide "Design view" fluid grid Web pages

  • Adding column not null in the existing table.

    How to add a column not null in the existing table?
    explain.
    Thank you
    create table abc_ex(a number);
    
    alter table abc_ex add(b number not null);
    
    desc abc_ex
    

    If for use then change to ALTER column extising

    Published by: nkvkashyap on May 27, 2013 21:49

  • Adding a sequential number column to an existing table.

    Greetings.

    I have an existing table of some 30 million lines.

    I would like to add an additional column (I did).

    I want to fill this new column with a sequential number.

    Have tried to create a sequence, I am at a loss on how to trigger the filling of the column.

    Any help would be received with gratitude.

    Thank you

    Published by: 896596 on May 16, 2012 09:05

    896596 wrote:
    Greetings.

    I have an existing table of some 30 million lines.

    I would like to add an additional column (I did).

    I want to fill this new column with a sequential number.

    Have tried to create a sequence, I am at a loss on how to trigger the filling of the column.

    Any help would be received with gratitude.

    Thank you

    Published by: 896596 on May 16, 2012 09:05

    Update new_col is set nextval.seq1;.

  • Existing table: Add a field that must be unique or null, is - permit?

    Hello

    I'm working on Oracle Utilities applications. I'm not a guru on the development of the database.

    There is an existing table with the following fields:

    1. DocVersion
    2. UIDContract
    3. StartTime
    4. StopTime
    5. Volume

    The first 3 fields are used to the PK.

    The function of this table to follow how much volume is linked to a Doc version and now with the change of the volume associated with the new SelNumber field.

    Now I have to make a change and I want to add a new field: SelNumber.

    There are two situations when a record is written to this table:

    1. existing situation is always necessary: then the SelNumber field is not filled in = NULL
    2. The new situation has added: the SelNumber field is not NULL.

    What's not now, it is that, in the new situation, the first free fields have the same value, only the SelNumber is different. So the first time a record is added to the table. But the next this record is replaced with the new value.

    I can't add the SelNumber field to the PK because in the first situation is NULL and a field of pharmacokinetics cannot be null, or...?

    So how can I resolve that I can add a record to the table the PK fields have the same value, but the value SelNumber is different, and in the situation, the SelNumber is null? Is it possible to make a unique constraint on the SelNumber field that has the value null or a unique number? Or is it a stupid thought?


    The alternative is I think, to create a new table, but on the other hand, I think that it should be possible!

    Please can someone help me with this problem I am facing in?

    Nico

    Hello

    I don't think you can do what you want with a Primary Key constraint.

    You can, however, create an index based on a single function, where the index values are all NULL when SelNumber is set to NULL:

    CREATE UNIQUE INDEX table_x_uk

    ON table_x

    (NVL2 (SelNumber, Docversion, NULL)

    NVL2 (SelNumber, UIDContract, NULL)

    NVL2 (SelNumber, StartTime, NULL)

    SelNumber

    );

    It will not not no constraint on the lines where SelNumber is set to NULL, but, if SelNumber is not null, then the combination of all 4 columns must be unique.

    Sorry, I can't test it now.

  • I can add a column to an existing table with the data.

    Hello

    I'm working on
    The Version of database: Oracle 9i

    I can add a column to an existing table that already has data with below given command.

    ALTER TABLE table_name
    ADD the definition of the column_name column;

    Kind regards
    John

    Add to that:

    If your new column is NOT "null", you need the task in 3 steps:

    1. Add the column without a NOT NULL constraint
    2. the default value of the new column added.
    3. Add the NOT NULL constraint in the new column.

    concerning
    AJ

  • How add us partition on an existing table?

    Hi gurus,

    What would be the best way to add a partition to an existing table?

    Is there a simple documentation for example?

    Thank you

    What would be the best way to add a partition to an existing table?

    Is there a simple documentation for example?

    Was it something you were ask in an interview?

    You cannot add a partition to a table unless this table is a partitioned table.

    The table is already partitioned? If so, after the DDL.

    The Oracle documentation has examples of adding partitions to a table that is already partitioned

    Partition management

    Adding Partitions

    This section explains how to manually add partitions of a partitioned table and explains why partitions can be added specifically for partitioned more indexes.

    Adding a Partition to a partitioned Table range

    Use of the ALTER TABLE ... ADD PARTITION statement to add a new partition at the end 'high' (the point after the last existing partition). To add a partition at the beginning or in the middle of a table, use the SPLIT PARTITION clause.

  • inserting data in a column in an existing table

    Hi the gems...

    I have an existing table TABLE_1 which has more data in it. This table has no primary key. now, I added a new column 'ID' and want to make it a primary key for this table. currently it is not allowed because the column is null...

    so I need to insert data into the column.
    now, my plan is to fill the column with the data as well as rownumber.

    means that if there are 15 records in this table, then the 'ID' column should contain data from 1 to 15. After that, I'll do the column as a primary key...

    the script I wrote for this:

    declare
    number of v_rownum;

    Start
    Select max (rownum) in the v_rownum from TABLE_1;
    because me in 1.v_rownum
    loop
    Update t set i = t.id TABLE_1 where rownum = i;
    commit;
    end loop;

    end;



    but it refreshes only the first record and the rest of the records are not updated.

    Please help... Thanks in advance...

    Select max (rownum) in the v_rownum from TABLE_1;

    How many rows do you think that this query will retrieve?

    Why not just

    Update TABLE_1 t
    the value t.id = rownum;

  • How can I convert an existing table to the ITO

    Hello

    My Oracle version is 10.2.0.4

    Here's my my test_table structure.

    He has 1141580 rows.

    I want to convert to table index. However, there is no secondary indexes.
    How can I convert an existing table to the ITO.

    CREATE TABLE test_table (
       Column1             NUMBER        NOT NULL,
       Column2             DATE          NOT NULL,
       Column3             VARCHAR2(100) NOT NULL,
       Column4             VARCHAR2(8)   NULL,
       Column5             VARCHAR2(40)  NOT NULL,
       Column6             VARCHAR2(3)   NULL,
       Column7             NUMBER        NOT NULL,
       Column8             NUMBER        NULL,
       Column9             VARCHAR2(32)  NULL,
    )
    
    /
    
    
    
    ALTER TABLE test_table
      ADD CONSTRAINT test_table_pk2 PRIMARY KEY (
        Column1,
        Column2
      )
      USING INDEX
        STORAGE (
          INITIAL   30720 K
        )
    
    /
    
    
    ALTER TABLE test_table
      ADD CONSTRAINT test_table_cons1 FOREIGN KEY (
        Column1
      ) REFERENCES test_table2 (
        Column1
      )
    /

    Documentation Oracle say:
    Redefinition of Table online allows you to change the organization from a normal table (heap-organized) to an organized in index table and vice versa.

    For example, you might want to try.

  • Add constraint to the new table

    Hello

    can someone give me please an idea on this subject?
    I created a table to an existing table, how do I add the constraint imposed on the old table newly created table?








    Thank you.
    Madam.

    Hello

    If you create a new table using DEC, then he wouldn't copy the old table to the new table constraints.
    Some of these options, you can use.
    (1) using dbms_metadata for the ddl for all dependent objects on the old table and run against the new table after you change the name of the table name/object.
    (2) use imp/exp or impdp/expdp without data to copy the table and dependent objects such as constraints.

    Concerning
    Anurag Tibrewal.

  • Adding members to an existing group

    I would like to know if I add a member to an existing table if I lose all the data on this new Member?

    Found this doc online and I can see that we need to define a new RAID policy so, bad news? I will lose data on my second Member?

    Thanks for your help!

    - psonlinehelp.equallogic.com/.../adding_members_to_an_existing_group.htm

    Hello

    Well the new Member has no data yet, but it will not affect the existing Member.

    When you add a new Member, it gets attached to the default pool.   However, without a RAIDset it does provide no data to the Group again.

    First decide if you want to add this member to the existing or to put it in its own pool.

    Assuming that the existing version is in the default pool and you want to add it to the default pool.

    You must activate all Ethernet iSCSI ports, and then select the RAID type for this member.  There is a box to make the space available immediately.  I prefer not to check that...  This allows the RAIDset fully complete the building before making the space available.   If no data will migrate the existing member until then.

    If you want it in its own pool.  Create the pool, select the new Member and under Member settings, you can select the pool and it will move it there.  Then repeat the above.  Configure the network interfaces, and then select the RAID policy.

    When you add a new Member, you will need the password to 'membership '.   Which may or may be not the same as the GRPADMIN password. When the Group has been set up, he asked first for the password.

    Kind regards

    Don

Maybe you are looking for

  • Update of Firefox has not

    I tried to enter in Firefox today and he said he was doing an update and Firefox would start in a minute. He did, but I was unable to access a Web page, including of mozilla.org. I thought I had a problem with the internet connection, but I could pin

  • My MSN account has been hacked

    original title: my account I used to have the account of * address email is removed from the privacy * I got it since 2005 I believe. Someone sent me an e-mail saying that I needed to update my private information I did only to find out, he was sent

  • Connect 70 d to TV

    Is there a procedure to connect my 70 d to a TV and view pictures (in the unit) on the TV screen?

  • BEFSR41 IPv6

    I recently read that there will be that a test 24 hours will take place June 8, 2011 IPv6 by Facebook, Yahoo!, Google, Akamai, etc.. I also read that IPv4 has virtually disappeared.  In this context, is a matter of time before the switch to IPv6 beco

  • I don't want Silverlight

    Windows Update includes as 'Important' updates to Silverlight, and I don't want any Silverlight. I can't run Microsoft Update without updating to Silverlight. How can I get rid of Silverlight and its updates?