Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Проверьте  [new]
Progm@n
Member

Откуда:
Сообщений: 19
Сразу извиняюсь за глупый вопрос. Всю жизнь работаю на T-SQL, но тут приспичело кое что на Oracle сделать. Проверьте плиз правильно ли я сделал constraint'ы(причем важно выносить их после объявления полей):

CREATE TABLE Towns
(
	TownID	             NUMBER(2)	NOT NULL,
	Name		NVARCHAR2(2)	NOT NULL,
	StateID	             NUMBER(2)	NOT NULL,
	CONSTRAINT	PK_Towns	PRIMARY KEY(TownID),
	CONSTRAINT	FK_Towns_States	FOREIGN KEY(StateID) REFERENCES States(StateID)
);

29 окт 07, 17:09    [4852262]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
дык попробуй - сразу узнаешь (вроде бы правильно :)
29 окт 07, 17:11    [4852277]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
Progm@n
Member

Откуда:
Сообщений: 19
в том то и фишка что попробывать не могу, а уже сегодня надо :)
29 окт 07, 17:12    [4852287]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
xymbo
Member

Откуда: Донской --> Москва
Сообщений: 2560
Вроде бы правильно. :)
29 окт 07, 17:15    [4852304]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
SQL> CREATE TABLE States(StateID number unique);

Таблица создана.

SQL> CREATE TABLE Towns
  2  (
  3          TownID               NUMBER(2)  NOT NULL,
  4          Name            NVARCHAR2(2)    NOT NULL,
  5          StateID              NUMBER(2)  NOT NULL,
  6          CONSTRAINT      PK_Towns        PRIMARY KEY(TownID),
  7          CONSTRAINT      FK_Towns_States FOREIGN KEY(StateID) REFERENCES States(StateID)
  8  );

Таблица создана.
29 окт 07, 17:15    [4852306]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
Levandovskiy
Member

Откуда:
Сообщений: 329
Progm@n
Сразу извиняюсь за глупый вопрос. Всю жизнь работаю на T-SQL, но тут приспичело кое что на Oracle сделать. Проверьте плиз правильно ли я сделал constraint'ы(причем важно выносить их после объявления полей):

CREATE TABLE Towns
(
	TownID	             NUMBER(2)	NOT NULL,
	Name		NVARCHAR2(2)	NOT NULL,
	StateID	             NUMBER(2)	NOT NULL,
	CONSTRAINT	PK_Towns	PRIMARY KEY(TownID),
	CONSTRAINT	FK_Towns_States	FOREIGN KEY(StateID) REFERENCES States(StateID)
);
Синтаксически все правильно.
А насчет размерности выделенного поля уверены?
29 окт 07, 17:16    [4852320]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
Progm@n
Member

Откуда:
Сообщений: 19
имел ввиду NVARCHAR(20)
всем спасибо
29 окт 07, 17:19    [4852346]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18367
Progm@n
имел ввиду NVARCHAR(20)

Гм... А почему не NVARCHAR2?
29 окт 07, 17:23    [4852372]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18367
andrey_anonymous
Progm@n
имел ввиду NVARCHAR(20)

Гм... А почему не NVARCHAR2?

И вообще - уверены ли Вы, что не подходит varchar2?
29 окт 07, 17:24    [4852379]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
Progm@n
Member

Откуда:
Сообщений: 19
эх совсем T-SQL забил мозги, NVARCHAR2 ессесно
29 окт 07, 17:24    [4852380]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
Progm@n
Member

Откуда:
Сообщений: 19
Суть такая: хранить названия города, я думаю NVARCHAR2(20) хватит для этого
29 окт 07, 17:25    [4852387]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18367
Progm@n
Суть такая: хранить названия города, я думаю NVARCHAR2(20) хватит для этого

Вопрос был - осознанно ли Вы выбрали именно Nvarchar2?
29 окт 07, 17:29    [4852410]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
Сергей Дорошенко
Member

Откуда: киев
Сообщений: 224
Progm@n
Суть такая: хранить названия города, я думаю NVARCHAR2(20) хватит для этого

явно не хватит, ставьте полсотни
29 окт 07, 17:34    [4852447]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
Сергей Дорошенко
Member

Откуда: киев
Сообщений: 224
Сергей Дорошенко
Progm@n
Суть такая: хранить названия города, я думаю NVARCHAR2(20) хватит для этого

явно не хватит, ставьте полсотни

если названия городов - русские, то хватит и 20.
но...
Город с самым длинным названием - это Бангкок, столица Таиланда. Если не сломать язык - можно прочесть его полное официальное название на тайском языке:
Krungthepmahanakhon Amornrattanakosin Mahintharayutthaya Mahadilokphop Noppharat Ratchathaniburirom Udomratchaniwetmahasathan Amonphiman Awatansathit Sakkathattiyawitsanukamprasit.
("Город ангелов, великий город, резиденция изумрудного Будды, неприступная крепость, великая столица мира, одаренная девятью драгоценными камнями и изобилующая великолепными королевскими дворцами, напоминающими райские жилища, из которых правит олицетворение Бога, Город, дарованный богом Индрой и построенный Висанукамом", - всего 167 букв)
29 окт 07, 17:38    [4852483]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
имхо, 20 - таки мало :)
SQL> select length('замуходрищенск на реке') le from dual;

        LE
----------
        22
29 окт 07, 17:54    [4852607]     Ответить | Цитировать Сообщить модератору
 Re: Проверьте  [new]
Город
Guest
Progm@n
Суть такая: хранить названия города, я думаю NVARCHAR2(20) хватит для этого


Нет. Без Бангока и прочей экзотики, навскидку:
Петропавловск-Камчатский.
=25
29 окт 07, 19:01    [4852891]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить