Потерялась скобка. Oracle
Код:
CREATE TABLE products(
prCode NUMBER(5) UNIQUE NOT NULL DEFAULT 0,
title VARCHAR2(50) NOT NULL DEFAULT 'we don\'t like empty strings',
grpCode NUMBER(5) NOT NULL DEFAULT 0,
prihodCost NUMBER(5) NOT NULL DEFAULT 0,
roznCost NUMBER(5) NOT NULL DEFAULT 0,
prCnt NUMBER(5) NOT NULL DEFAULT 0);
CREATE TABLE product_groups(
grpCode NUMBER(5) UNIQUE NOT NULL DEFAULT 0,
grpType VARCHAR2(50) NOT NULL DEFAULT 'empty strings is NULL',
prCnt NUMBER(50) NOT NULL DEFAULT 0,
svodRoznCost FLOAT NOT NULL DEFAULT 0.0,
nacenka FLOAT DEFAULT 0);
prCode NUMBER(5) UNIQUE NOT NULL DEFAULT 0,
title VARCHAR2(50) NOT NULL DEFAULT 'we don\'t like empty strings',
grpCode NUMBER(5) NOT NULL DEFAULT 0,
prihodCost NUMBER(5) NOT NULL DEFAULT 0,
roznCost NUMBER(5) NOT NULL DEFAULT 0,
prCnt NUMBER(5) NOT NULL DEFAULT 0);
CREATE TABLE product_groups(
grpCode NUMBER(5) UNIQUE NOT NULL DEFAULT 0,
grpType VARCHAR2(50) NOT NULL DEFAULT 'empty strings is NULL',
prCnt NUMBER(50) NOT NULL DEFAULT 0,
svodRoznCost FLOAT NOT NULL DEFAULT 0.0,
nacenka FLOAT DEFAULT 0);
1 0.00 CREATE TABLE products( prCode number(5) UNIQUE NOT NULL ORA-00907: missing right parenthesis -
2 0.00 CREATE TABLE product_groups( grpCode number(5) UNIQUE NO ORA-00907: missing right parenthesis -
Ну где же они потерялись? Полчаса уже не могу найти.
а разве кавычка так экранируется в sql? вроде просто 'we don''t like empty strings'
Вроде бы оба варианта работают. По крайней мере подсветка синтаксиса не говорит о том, что кавычка не экранируется. Ну и без этой строки тоже не работает.
Код:
CREATE TABLE prdafsfsdfdfssssd(prCnt NUMBER(5) UNIQUE NOT NULL);
Код:
prCnt NUMBER(5) DEFAULT 0 NOT NULL UNIQUE);
UPD: как оказалось, экранирование через \ тоже вызывает ошибку, так что его нужно заменить на ''.
Цитата: UserNet2008
А так
UNIQUE NOT NULL DEFAULT
Так тоже работать не будет.
Код:
UNIQUE может состоять более чем из одного столбца:
CREATE TABLE uniquetest2 (
col1 INTEGER, col2 INTEGER,
UNIQUE (col1, col2) );
CREATE TABLE uniquetest2 (
col1 INTEGER, col2 INTEGER,
UNIQUE (col1, col2) );
Цитата: UserNet2008
Код:
UNIQUE может состоять более чем из одного столбца:
CREATE TABLE uniquetest2 (
col1 INTEGER, col2 INTEGER,
UNIQUE (col1, col2) );
CREATE TABLE uniquetest2 (
col1 INTEGER, col2 INTEGER,
UNIQUE (col1, col2) );
Не обращу. :) Это другой пример. У меня уникальность атрибута устанавливается в каждой строке отдельно.
Код:
CREATE TABLE products(
prCode NUMBER(5) DEFAULT 0 NOT NULL UNIQUE,
title VARCHAR2(50) DEFAULT 'we don''t like empty strings' NOT NULL,
grpCode NUMBER(5) DEFAULT 0 NOT NULL,
prihodCost FLOAT DEFAULT 0 NOT NULL,
roznCost FLOAT DEFAULT 0 NOT NULL,
prCnt NUMBER(5) DEFAULT 0 NOT NULL);
CREATE TABLE products_groups(
grpCode NUMBER(5) DEFAULT 0 NOT NULL UNIQUE,
grpType VARCHAR2(50) DEFAULT 'empty strings is NULL' NOT NULL,
prCnt NUMBER(10) DEFAULT 0 NOT NULL,
svodRoznCost FLOAT DEFAULT 0 NOT NULL,
nacenka FLOAT DEFAULT 0 NOT NULL);
prCode NUMBER(5) DEFAULT 0 NOT NULL UNIQUE,
title VARCHAR2(50) DEFAULT 'we don''t like empty strings' NOT NULL,
grpCode NUMBER(5) DEFAULT 0 NOT NULL,
prihodCost FLOAT DEFAULT 0 NOT NULL,
roznCost FLOAT DEFAULT 0 NOT NULL,
prCnt NUMBER(5) DEFAULT 0 NOT NULL);
CREATE TABLE products_groups(
grpCode NUMBER(5) DEFAULT 0 NOT NULL UNIQUE,
grpType VARCHAR2(50) DEFAULT 'empty strings is NULL' NOT NULL,
prCnt NUMBER(10) DEFAULT 0 NOT NULL,
svodRoznCost FLOAT DEFAULT 0 NOT NULL,
nacenka FLOAT DEFAULT 0 NOT NULL);
О, спасибо.. та же проблема была, кучу времени убил!