Премини към съдържанието

Препоръчан отговор


Здравейте !

Имам един въпрос.

Имам две таблици на MySQL. Едната е таблица летища, която съдържа(ID - първичен ключ), име на летището, държава, град и адрес. 2-рата таблица съдържа (ID-първичен ключ) и две полета (FromTheAirportID и ToAirportID), тези две полета трябва да съдържат ID-то от първата таблица с летищата.

Въпроса ми е с каква заявка става това ако може някой да ми помогне ще съм му благодарен.

Работя на MySQL(phpMyAdmin)

Благодаря предварително 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

преди 2 часа, Димитър Иванов написа:

Здравейте !

Имам един въпрос.

Имам две таблици на MySQL. Едната е таблица летища, която съдържа(ID - първичен ключ), име на летището, държава, град и адрес. 2-рата таблица съдържа (ID-първичен ключ) и две полета (FromTheAirportID и ToAirportID), тези две полета трябва да съдържат ID-то от първата таблица с летищата.

Въпроса ми е с каква заявка става това ако може някой да ми помогне ще съм му благодарен.

Работя на MySQL(phpMyAdmin)

Благодаря предварително 

Здравейте!

Моля, огледайте следната декларация на таблици - мисля, че целите нещо подобно:

CREATE TABLE AIRPORT (
  ID INT NOT NULL PRIMARY KEY,
  NAME VARCHAR(256) NOT NULL,
  COUNTRY VARCHAR(256) NOT NULL,
  CITY VARCHAR(256),
  ADDRESS VARCHAR(2048)
);

CREATE TABLE FLIGHT(
  ID INT NOT NULL PRIMARY KEY,
  FROM_AIRPORT INT NOT NULL,
  TO_AIRPORT INT NOT NULL,
  FOREIGN KEY (FROM_AIRPORT)
        REFERENCES AIRPORT(ID)
        ON DELETE CASCADE,
  FOREIGN KEY (TO_AIRPORT)
        REFERENCES AIRPORT(ID)
        ON DELETE CASCADE
);

Само внимавайте с "ON DELETE CASCADE" частта - възможно е да имате изискване да запазвате вече въведени данни за полет, дори да се премахнат летищата. В такъв случай може да ползвате друг вид действие при изтриване:

[ON DELETE reference_option]

reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT

За повече инфо: цък

Поздрави !

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

аз го правя точно така, но не ми прехвърля самите ID -та от едната таблица в другата или то не трябва да ги прехвърля 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 4 часа, Димитър Иванов написа:

аз го правя точно така, но не ми прехвърля самите ID -та от едната таблица в другата или то не трябва да ги прехвърля 

Какво ще рече "Не ми прехвърля самите ID-та от едната таблица в другата" ?
Приложеното по-горе е DDL скрипт за създаване на самите DB обекти (сиреч, таблиците и constraint-ите). За да се прехвърлят данни, се ползва DML скриптове - SELECT/UPDATE/DELETE (т.нар. CRUD операции).

СУБД-то няма как да знае кои точно данни да мята насам натам - някой трябва да му каже как и кои да се запишат (това се прави или с програмна логика или самия човек си прави DML-ите да се полълват).

Всъщност, нека запитам така - какво понятие от Бази данни имате и какво точно се опитвате да постигнете ? Въпросът, зададен в началото, говори за създаване на DDL, в отговора си, искате попълване на данни (DML).  

Поздрави !

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

объркал бях малко затова не ставаше, но се оправих, благодаря за отделеното време 


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Горещи теми в момента

  • Подобни теми

    • от minavazatoka
      Добър ден , нов съм в сферата си . Тоест не съм работил за фирма и не знам как да си намеря нормална фирма без да гледам обяви в университета или фирми , които идват да си търсят кандидати . Наясно съм че не са само 2 / 3 фирмите занимаващи се с web design във Варна . Въпросът ми е : Можете ли да ми предложите добри или поне приемливи фирми във Варна или Стара Загора търсещи си стажант (понеже , както споменах по-горе нов съм в сферата си) ? 
      ПС: Писал съм на php даже сега правя уеб сайт за запознанства , имам опит със SQL , опит с html и css и сега се опитвам да науча js и да осъвършенствам другите си езици . Не е като да не знам какво е Git или фреймуърк . 
    • от ARCS
      Здравейте, задачата ми е : 
      Трябва да създам процедура, с която да въведа нов ред в таблица DEPARTMENTS. Трябва да проверя за уникалността на номера и името на отдела. И ако изискванията не са изпълнени, да се вдигнат съответните изключения и за тези данни да се създаде запис в помощна таблица ERROR_DEPART със структурата на таблица DEPARTMENTS.
      Създавам процедура и въвеждам данните в DEPARTMENTS. След това търся изключения :
      EXCEPTION
       WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Err: adding dept: '|| p_name);
      Но как да създам нов запис в друга таблица от изведените изключения?
      А това е моят код:
      ============================================================
      create or replace PROCEDURE add_depar(
          p_name VARCHAR2, p_mgr NUMBER, p_loc NUMBER) IS
      BEGIN
        INSERT INTO DEPARTMENTS (department_id,
          department_name, manager_id, location_id)
        VALUES (DEPARTMENTS_SEQ.NEXTVAL, p_name, p_mgr, p_loc);
        DBMS_OUTPUT.PUT_LINE('Added Dept: '|| p_name);
      EXCEPTION
       WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Err: adding dept: '|| p_name);
      END;
      ============================================================
       
      Моля за препоръки!
    • от ARCS
      Здравейте, задачата ми е : 
      Трябва да създам процедура, с която да въведа нов ред в таблица DEPARTMENTS. Трябва да проверя за уникалността на номера и името на отдела. И ако изискванията не са изпълнени, да се вдигнат съответните изключения и за тези данни да се създаде запис в помощна таблица ERROR_DEPART със структурата на таблица DEPARTMENTS.
      Създавам процедура и въвеждам данните в DEPARTMENTS. След това търся изключения :
      EXCEPTION
       WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Err: adding dept: '|| p_name);
      Но как да създам нов запис в друга таблица от изведените изключения?
      А това е моят код:
      ============================================================
      create or replace PROCEDURE add_depar(
          p_name VARCHAR2, p_mgr NUMBER, p_loc NUMBER) IS
      BEGIN
        INSERT INTO DEPARTMENTS (department_id,
          department_name, manager_id, location_id)
        VALUES (DEPARTMENTS_SEQ.NEXTVAL, p_name, p_mgr, p_loc);
        DBMS_OUTPUT.PUT_LINE('Added Dept: '|| p_name);
      EXCEPTION
       WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Err: adding dept: '|| p_name);
      END;
      ============================================================
       
      Моля за препоръки!
    • от ARCS
      Здравейте! Бих искал да интегрирам база данни от Mysql в C++ приложение. Може ли да ме насочите как става това или да ме насочите към някой линк в който е добре обяснено.
      Благодаря!
    • от Duhlinski
      Здравейте!
      Инсталирах xammp 1.6.8. Всичко е ок, но когато опитам да вляза в phpMyAdmin, за да създам базата данни, ми дава следното съобщение Fatal error: Maximum execution time of 60 seconds exceeded in C:xamppphpMyAdminlibrariesselect_lang.lib.php on line 373. На какво се дължи и как да оправя нещата? С XP sp3 съм, някяква побългарена версия, която иначе работи коректно.
      Моля за помощ и благодаря на отзовалите се!
      Любомир Духлински
  • Дарение

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.