Hallo,
es ist das erste mal, dass ich SQL in einer Oracle-Datenbank verwenden muss
und bin überrascht, dass nicht mal das (für mich) einfachste SQL funktioniert.
Das liegt natürlich nicht an Oracle oder SQL, sondern an mir
Vielleicht kann mir einer helfen, ich möchte einige Tabellen erstellen und bekomme
bei jeder einzelnen Tabelle folgenden Fehler:
Außerdem habe ich noch keine einfache Möglichkeit gefunden, eine ID automatisch
inkrementieren zu lassen.
(Das SQL das ich normalerweise verwende lässt so etwas problemlos zu: ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY)
Zum Schluss mal die Statments die ich durchjagen möchte. Vom Aufbau ähneln alle
Statements den ersten dreien:
Hoffe das ich das schnell in meinen Kopf bekomme, was es hier für
Oracle zu beachten gibt
Grüße
es ist das erste mal, dass ich SQL in einer Oracle-Datenbank verwenden muss
und bin überrascht, dass nicht mal das (für mich) einfachste SQL funktioniert.
Das liegt natürlich nicht an Oracle oder SQL, sondern an mir
Vielleicht kann mir einer helfen, ich möchte einige Tabellen erstellen und bekomme
bei jeder einzelnen Tabelle folgenden Fehler:
Code:
ORA-00922: missing or invalid option
Außerdem habe ich noch keine einfache Möglichkeit gefunden, eine ID automatisch
inkrementieren zu lassen.
(Das SQL das ich normalerweise verwende lässt so etwas problemlos zu: ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY)
Zum Schluss mal die Statments die ich durchjagen möchte. Vom Aufbau ähneln alle
Statements den ersten dreien:
Code:
--
-- Sequence for aout incrment
--
CREATE SEQUENCE IF NOT EXISTS AUTO_INC_SEQ
START WITH 1
INCREMENT BY 1;
--
-- Table Person
--
CREATE TABLE IF NOT EXISTS FITNESS_PERSON
(
ID NUMBER NOT NULL PRIMARY KEY,
FIRST_NAME VARCHAR NOT NULL,
LAST_NAME VARCHAR NOT NULL,
NICK_NAME VARCHAR NOT NULL,
DATE_BIRTH DATE NOT NULL,
PASSWORD VARCHAR NOT NULL,
CONSTRAINT UNIQUE(NICK_NAME)
);
--
-- Table BMR
--
CREATE TABLE IF NOT EXISTS FITNESS_BMR
(
ID NUMBER NOT NULL PRIMARY KEY,
VALUE FLOAT NOT NULL,
VALUE_DATE DATE NOT NULL
);
--
-- M:N for BMR and Person
--
CREATE TABLE IF NOT EXISTS FITNESS_BMR_PERSON
(
BMR_ID NUMBER NOT NULL,
PERSON_ID NUMBER NOT NULL,
FOREIGN KEY(BMR_ID) REFERENCES FITNESS_BMR(ID),
FOREIGN KEY(PERSON_ID) REFERENCES FITNESS_PERSON(ID),
CONSTRAINT BMR_PER PRIMARY KEY(BMR_ID, PERSON_ID)
);
--
-- Table BMI
--
CREATE TABLE IF NOT EXISTS FITNESS_BMI
(
ID NUMBER NOT NULL PRIMARY KEY,
VALUE FLOAT NOT NULL,
VALUE_DATE DATE NOT NULL
);
--
-- M:N for BMI and Person
--
CREATE TABLE IF NOT EXISTS FITNESS_BMI_PERSON
(
BMI_ID NUMBER NOT NULL,
PERSON_ID NUMBER NOT NULL,
FOREIGN KEY(BMI_ID) REFERENCES FITNESS_BMI(ID),
FOREIGN KEY(PERSON_ID) REFERENCES FITNESS_PERSON(ID),
CONSTRAINT BMI_PER PRIMARY KEY(BMI_ID, PERSON_ID)
);
--
-- Table AMR
--
CREATE TABLE IF NOT EXISTS FITNESS_AMR
(
ID NUMBER NOT NULL PRIMARY KEY,
VALUE FLOAT NOT NULL,
VALUE_DATE DATE NOT NULL
);
--
-- M:N for AMR and Person
--
CREATE TABLE IF NOT EXISTS FITNESS_AMR_PERSON
(
AMR_ID NUMBER NOT NULL,
PERSON_ID NUMBER NOT NULL,
FOREIGN KEY(AMR_ID) REFERENCES FITNESS_AMR(ID),
FOREIGN KEY(PERSON_ID) REFERENCES FITNESS_PERSON(ID),
CONSTRAINT AMR_PER PRIMARY KEY(AMR_ID, PERSON_ID)
);
--
-- Table Workoutplan
--
CREATE TABLE IF NOT EXISTS FITNESS_WORKOUT_PLAN
(
ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL
);
--
-- M:N for Workoutplan and Person
--
CREATE TABLE IF NOT EXISTS FITNESS_WORKOUT_PLAN_PERSON
(
WORKOUT_PLAN_ID NUMBER NOT NULL,
PERSON_ID NUMBER NOT NULL,
FOREIGN KEY(WORKOUT_PLAN_ID) REFERENCES FITNESS_WORKOUT_PLAN(ID),
FOREIGN KEY(PERSON_ID) REFERENCES FITNESS_PERSON(ID),
CONSTRAINT WP_PER PRIMARY KEY(WORKOUT_PLAN_ID, PERSON_ID)
);
--
-- Table Workout
--
CREATE TABLE IF NOT EXISTS FITNESS_WORKOUT
(
ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL,
W_DATE DATE
);
--
-- M:N for Workout and Workoutplan
--
CREATE TABLE IF NOT EXISTS FITNESS_WORKOUT_WORKOUT_PLAN
(
WORKOUT_ID NUMBER NOT NULL,
WORKOUT_PLAN_ID NUMBER NOT NULL,
FOREIGN KEY(WORKOUT_ID) REFERENCES FITNESS_WORKOUT(ID),
FOREIGN KEY(WORKOUT_PLAN_ID) REFERENCES FITNESS_WORKOUT_PLAN(ID),
CONSTRAINT W_WP PRIMARY KEY(WORKOUT_ID, WORKOUT_PLAN_ID)
);
--
-- Table Exercise
--
CREATE TABLE IF NOT EXISTS FITNESS_EXERCISE
(
ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL,
SETS VARCHAR,
REPS VARCHAR,
WEIGHT VARCHAR,
DURATION TIME
);
--
-- M:N for Exercise and Workout
--
CREATE TABLE IF NOT EXISTS FITNESS_EXERCISE_WORKOUT
(
EXERCISE_ID NUMBER NOT NULL,
WORKOUT_ID NUMBER NOT NULL,
FOREIGN KEY(EXERCISE_ID) REFERENCES FITNESS_EXERCISE(ID),
FOREIGN KEY(WORKOUT_ID) REFERENCES FITNESS_WORKOUT(ID),
CONSTRAINT E_W PRIMARY KEY(EXERCISE_ID, WORKOUT_ID)
);
--
-- Table Workoutdiary
--
CREATE TABLE IF NOT EXISTS FITNESS_WORKOUT_DIARY
(
ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL
);
--
-- M:N for Workoutdiary and Person
--
CREATE TABLE IF NOT EXISTS FITNESS_WORKOUT_DIARY_PERSON
(
WORKOUT_DIARY_ID NUMBER NOT NULL,
PERSON_ID NUMBER NOT NULL,
FOREIGN KEY(WORKOUT_DIARY_ID) REFERENCES FITNESS_WORKOUT_DIARY(ID),
FOREIGN KEY(PERSON_ID) REFERENCES FITNESS_PERSON(ID),
CONSTRAINT WD_PER PRIMARY KEY(WORKOUT_DIARY_ID, PERSON_ID)
);
--
-- Table Nutritionplan
--
CREATE TABLE IF NOT EXISTS FITNESS_NUTRITION_PLAN
(
ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL
);
--
-- M:N for Workoutplan and Person
--
CREATE TABLE IF NOT EXISTS FITNESS_NUTRITION_PLAN_PERSON
(
NUTRITION_PLAN_ID NUMBER NOT NULL,
PERSON_ID NUMBER NOT NULL,
FOREIGN KEY(NUTRITION_PLAN_ID) REFERENCES FITNESS_NUTRITION_PLAN(ID),
FOREIGN KEY(PERSON_ID) REFERENCES FITNESS_PERSON(ID),
CONSTRAINT NP_PER PRIMARY KEY(NUTRITION_PLAN_ID, PERSON_ID)
);
--
-- Table Nutrition
--
CREATE TABLE IF NOT EXISTS FITNESS_NUTRITION
(
ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL,
W_DATE DATE
);
--
-- M:N for Nutrition and Nutritionplan
--
CREATE TABLE IF NOT EXISTS FITNESS_NUTRITION_NUTRITION_PLAN
(
NUTRITION_ID NUMBER NOT NULL,
NUTRITION_PLAN_ID NUMBER NOT NULL,
FOREIGN KEY(NUTRITION_ID) REFERENCES FITNESS_NUTRITION(ID),
FOREIGN KEY(NUTRITION_PLAN_ID) REFERENCES FITNESS_NUTRITION_PLAN(ID),
CONSTRAINT N_NP PRIMARY KEY(NUTRITION_ID, NUTRITION_PLAN_ID)
);
--
-- Table Food
--
CREATE TABLE IF NOT EXISTS FITNESS_FOOD
(
ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL,
PROTEIN INT,
CARBOS INT,
FAT INT,
CALORIES INT
);
--
-- M:N for Food and Nutrition
--
CREATE TABLE IF NOT EXISTS FITNESS_FOOD_NUTRITION
(
FOOD_ID NUMBER NOT NULL,
NUTRITION_ID NUMBER NOT NULL,
FOREIGN KEY(FOOD_ID) REFERENCES FITNESS_FOOD(ID),
FOREIGN KEY(NUTRITION_ID) REFERENCES FITNESS_NUTRITION(ID),
CONSTRAINT F_N PRIMARY KEY(FOOD_ID, NUTRITION_ID)
);
Hoffe das ich das schnell in meinen Kopf bekomme, was es hier für
Oracle zu beachten gibt
Grüße