Показать сообщение отдельно
  #4  
Старый 23.06.2011, 17:43
KristoferRuotsi KristoferRuotsi вне форума
Прохожий
 
Регистрация: 14.05.2011
Сообщения: 36
Репутация: 10
По умолчанию

Пример создания таблицы для Oracle
Код:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD.MM.YYYY';
ALTER SESSION SET NLS_TIME_FORMAT = 'HH24:MI:SS.FF';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'DD.MM.YYYY HH24:MI:SS.FF';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'DD.MM.YYYY HH24:MI:SS.FF TZR';
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';
ALTER SESSION SET TIME_ZONE = '+00:00';
--
-- Описание для таблицы SACARDASSORT
--
CREATE TABLE SACARDASSORT (
  ID NUMBER(10) DEFAULT -1 ,
  TREE VARCHAR2(100) NOT NULL,
  NAME VARCHAR2(255) NOT NULL,
  FLAGS NUMBER(10) DEFAULT 0  NOT NULL,
  CREATOR NUMBER(10) DEFAULT -2  NOT NULL,
  CONSTRAINT SACCARDASSORT_PK PRIMARY KEY (ID),
  CONSTRAINT SACCARDASSORTROOTTREE CHECK ( ID=0 AND Tree='#'
			OR ID!=0 AND Tree!='#' ),
  CONSTRAINT SACCARDASSORTTREE UNIQUE (TREE) DEFERRABLE)
TABLESPACE USERS
STORAGE (
  INITIAL 64K
  MAXEXTENTS UNLIMITED
)
LOGGING
MONITORING;
--
-- Описание для триггера SACARDASSORTD
--
CREATE OR REPLACE TRIGGER SACARDASSORTD
  BEFORE DELETE ON SACARDASSORT FOR EACH ROW
BEGIN
	IF :old.ID=0 THEN
		Core.Fail((-20000-550));
	END IF;
END;
/
--
-- Описание для триггера SACARDASSORTUD
--
CREATE OR REPLACE TRIGGER SACARDASSORTUD
  BEFORE UPDATE OR DELETE ON SACARDASSORT FOR EACH ROW
DECLARE
	vUserID Office.EmployeeID;
	vRoleName SMClientFunctions.OraRole%TYPE;
BEGIN
	IF (AdminCore.IsSMPostSession='0') AND
		(BITAND(:old.Flags,1)!=0
		OR updating AND BITAND(:new.Flags,1)!=0)
	THEN
		Office.GetUserID(vUserID);
		IF vUserID!=:old.Creator THEN
			BEGIN
				SELECT OraRole INTO vRoleName
					FROM SMClientFunctions
					WHERE ID=811;
			EXCEPTION WHEN NO_DATA_FOUND THEN
				Core.Fail((-20000-507));
			END;
			IF NOT dbms_session.is_role_enabled(vRoleName) THEN
				Office.RaiseRoleNotGranted(FALSE,811);
			END IF;
		END IF;
	END IF;
END;
/
--
-- Описание для триггера SACARDASSORTUI
--
CREATE OR REPLACE TRIGGER SACARDASSORTUI
  BEFORE INSERT OR UPDATE ON SACARDASSORT FOR EACH ROW
BEGIN
	IF :new.ID<0 THEN
		SELECT SACardAssortSeq.NEXTVAL
		INTO :new.ID FROM DUAL;
	END IF;
	IF inserting OR updating('Tree') THEN
		IF NOT Classifier.IsClassifierPath(:new.Tree) THEN
			Core.FailMsg('Неверный формат пути в классификаторе «'||:new.Tree||'»', (-20000-551));
		END IF;
	END IF;
END;
/
-- 
-- Вывод данных для таблицы SACARDASSORT
-- 
INSERT INTO SACARDASSORT VALUES (0, '#', 'Все', 0, -2);
INSERT INTO SACARDASSORT VALUES (11, '8.', 'АКЦИИ ', 0, 9);
INSERT INTO SACARDASSORT VALUES (16, '11.', 'Собственное производство', 0, 16);
INSERT INTO SACARDASSORT VALUES (17, '11.1.', 'Кулинарный цех', 0, 16);
INSERT INTO SACARDASSORT VALUES (18, '11.1.1.', 'Кулинарный цех вес.', 2, 16);
INSERT INTO SACARDASSORT VALUES (19, '11.1.2.', 'Кулинарный цех шт.', 2, 16);
INSERT INTO SACARDASSORT VALUES (21, '11.2.', 'Мясной цех', 0, 16);
INSERT INTO SACARDASSORT VALUES (22, '11.2.1.', 'Мясной цех вес.', 2, 16);
INSERT INTO SACARDASSORT VALUES (23, '11.2.2.', 'Мясной цех шт.', 2, 16);
INSERT INTO SACARDASSORT VALUES (24, '11.3.', 'Кондитерский цех', 0, 16);
INSERT INTO SACARDASSORT VALUES (25, '11.3.1.', 'Кондитерский цех вес.', 2, 16);
INSERT INTO SACARDASSORT VALUES (27, '11.3.2.', 'Кондитерский цех шт.', 2, 16);
INSERT INTO SACARDASSORT VALUES (28, '11.4.', 'Пекарня', 0, 16);
INSERT INTO SACARDASSORT VALUES (30, '11.4.1.', 'Пекарня вес.', 2, 16);
INSERT INTO SACARDASSORT VALUES (31, '11.4.2.', 'Пекарня шт.', 2, 16);
INSERT INTO SACARDASSORT VALUES (36, '15.', 'УЛП', 2, 9);
INSERT INTO SACARDASSORT VALUES (45, '8.8.', 'Мега ', 2, 9);
INSERT INTO SACARDASSORT VALUES (46, '8.9.', 'Лучшая цена ', 2, 9);
INSERT INTO SACARDASSORT VALUES (47, '8.10.', 'Сезонка', 2, 9);
INSERT INTO SACARDASSORT VALUES (48, '8.11.', 'Распродажа', 2, 9);
INSERT INTO SACARDASSORT VALUES (49, '16.', 'СТМ ', 2, 9);
INSERT INTO SACARDASSORT VALUES (50, '17.', 'ТОП не изменять', 0, 49);
INSERT INTO SACARDASSORT VALUES (51, '17.1.', 'ТОП 500', 2, 49);
INSERT INTO SACARDASSORT VALUES (52, '18.', 'ТОП по группам', 1, 49);
INSERT INTO SACARDASSORT VALUES (53, '18.1.', 'колбаса', 2, 49);
INSERT INTO SACARDASSORT VALUES (54, '18.2.', 'фрукты', 2, 49);
-- Нет объектов для экспорта.

Пример создания таблицы для MySQL

Код:
USE SUPERMAG;

CREATE TABLE SUPERMAG.SACARDASSORT
(
  id INT(11) NOT NULL,
  tree VARCHAR(255) NOT NULL,
  name VARCHAR(255) NOT NULL,
  flags INT(10) NOT NULL,
  creator INT(10) NOT NULL
)
ENGINE = MYISAM
CHARACTER SET utf8
COLLATE utf8_general_ci;

INSERT INTO SACARDASSORT VALUES (0, '#', 'Все', 0, -2);
INSERT INTO SACARDASSORT VALUES (11, '8.', 'АКЦИИ ', 0, 9);
INSERT INTO SACARDASSORT VALUES (16, '11.', 'Собственное производство', 0, 16);
INSERT INTO SACARDASSORT VALUES (17, '11.1.', 'Кулинарный цех', 0, 16);
INSERT INTO SACARDASSORT VALUES (18, '11.1.1.', 'Кулинарный цех вес.', 2, 16);
INSERT INTO SACARDASSORT VALUES (19, '11.1.2.', 'Кулинарный цех шт.', 2, 16);
INSERT INTO SACARDASSORT VALUES (21, '11.2.', 'Мясной цех', 0, 16);
INSERT INTO SACARDASSORT VALUES (22, '11.2.1.', 'Мясной цех вес.', 2, 16);
INSERT INTO SACARDASSORT VALUES (23, '11.2.2.', 'Мясной цех шт.', 2, 16);
INSERT INTO SACARDASSORT VALUES (24, '11.3.', 'Кондитерский цех', 0, 16);
INSERT INTO SACARDASSORT VALUES (25, '11.3.1.', 'Кондитерский цех вес.', 2, 16);
INSERT INTO SACARDASSORT VALUES (27, '11.3.2.', 'Кондитерский цех шт.', 2, 16);
INSERT INTO SACARDASSORT VALUES (28, '11.4.', 'Пекарня', 0, 16);
INSERT INTO SACARDASSORT VALUES (30, '11.4.1.', 'Пекарня вес.', 2, 16);
INSERT INTO SACARDASSORT VALUES (31, '11.4.2.', 'Пекарня шт.', 2, 16);
INSERT INTO SACARDASSORT VALUES (36, '15.', 'УЛП', 2, 9);
INSERT INTO SACARDASSORT VALUES (45, '8.8.', 'Мега ', 2, 9);
INSERT INTO SACARDASSORT VALUES (46, '8.9.', 'Лучшая цена ', 2, 9);
INSERT INTO SACARDASSORT VALUES (47, '8.10.', 'Сезонка', 2, 9);
INSERT INTO SACARDASSORT VALUES (48, '8.11.', 'Распродажа', 2, 9);
INSERT INTO SACARDASSORT VALUES (49, '16.', 'СТМ ', 2, 9);
INSERT INTO SACARDASSORT VALUES (50, '17.', 'ТОП не изменять', 0, 49);
INSERT INTO SACARDASSORT VALUES (51, '17.1.', 'ТОП 500', 2, 49);
INSERT INTO SACARDASSORT VALUES (52, '18.', 'ТОП по группам', 1, 49);
INSERT INTO SACARDASSORT VALUES (53, '18.1.', 'колбаса', 2, 49);
INSERT INTO SACARDASSORT VALUES (54, '18.2.', 'фрукты', 2, 49);

и поле three тут успешно используется для построения дерева
как видите...
Ответить с цитированием