Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. MySQL - Can't create Visit table

MySQL - Can't create Visit table

Scheduled Pinned Locked Moved Database
mysqlquestion
8 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    noislude
    wrote on last edited by
    #1

    edit: the EER model link to the EER Model Hi, good morning from Brazil. What's the right way to create the Visit table below?

    CREATE TABLE IF NOT EXISTS FARM
    (
    FARM_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    FARM_NAME VARCHAR(45) NOT NULL,
    ADDRESS VARCHAR(45) NOT NULL,
    OWNER VARCHAR(45) NOT NULL
    )ENGINE = INNODB;

    CREATE TABLE IF NOT EXISTS PADDOCK
    (
    PADDOCK_NUM INT NOT NULL,
    FARM_FARM_ID INT NOT NULL,
    PRIMARY KEY(FARM_FARM_ID, PADDOCK_NUM),
    AREA VARCHAR(45) NOT NULL,
    CONSTRAINT FARM_FARM_ID_CON FOREIGN KEY(FARM_FARM_ID)
    REFERENCES FARM(FARM_ID)
    )ENGINE = INNODB;

    CREATE TABLE IF NOT EXISTS VISIT
    (
    VISIT_ID INT NOT NULL PRIMARY KEY,
    GATHERING DATE,
    PADDOCK_PADDOCK_NUM INT NOT NULL,
    PADDOCK_FARM_ID INT NOT NULL,
    CONSTRAINT PADDOCK_PADDOCK_NUM_CON FOREIGN KEY(PADDOCK_PADDOCK_NUM)
    REFERENCES PADDOCK(PADDOCK_NUM),
    CONSTRAINT PADDOCK_PADDOCK_FARM_ID_CON FOREIGN KEY(PADDOCK_FARM_ID)
    REFERENCES PADDOCK(FARM_FARM_ID)
    )ENGINE = INNODB;

    CREATE TABLE IF NOT EXISTS VISIT
    (
    VISIT_ID INT NOT NULL PRIMARY KEY,
    GATHERING DATE,
    PADDOCK_PADDOCK_NUM INT NOT NULL,
    PADDOCK_FARM_ID INT NOT NULL,
    CONSTRAINT PADDOCK_PADDOCK_NUM_CON FOREIGN KEY(PADDOCK_PADDOCK_NUM)
    REFERENCES PADDOCK(PADDOCK_NUM),
    CONSTRAINT PADDOCK_PADDOCK_FARM_ID_CON FOREIGN KEY(PADDOCK_FARM_ID)
    REFERENCES PADDOCK(FARM_FARM_ID),
    UNIQUE KEY(PADDOCK_PADDOCK_NUM, PADDOCK_FARM_ID, GATHERING)
    )ENGINE = INNODB;

    CREATE TABLE IF NOT EXISTS SAMPLE
    (
    SAMPLE_NUM INT UNSIGNED NOT NULL AUTO_INCREMENT,
    VISIT_VISIT_ID INT NOT NULL,
    PRIMARY KEY(SAMPLE_NUM, VISIT_VISIT_ID),
    COUNT INT,
    CONSTRAINT VISIT_VISIT_ID_CON FOREIGN KEY(VISIT_VISIT_ID)
    REFERENCES VISIT(VISIT_ID)
    )ENGINE = INNODB;

    P B Richard DeemingR 3 Replies Last reply
    0
    • N noislude

      edit: the EER model link to the EER Model Hi, good morning from Brazil. What's the right way to create the Visit table below?

      CREATE TABLE IF NOT EXISTS FARM
      (
      FARM_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
      FARM_NAME VARCHAR(45) NOT NULL,
      ADDRESS VARCHAR(45) NOT NULL,
      OWNER VARCHAR(45) NOT NULL
      )ENGINE = INNODB;

      CREATE TABLE IF NOT EXISTS PADDOCK
      (
      PADDOCK_NUM INT NOT NULL,
      FARM_FARM_ID INT NOT NULL,
      PRIMARY KEY(FARM_FARM_ID, PADDOCK_NUM),
      AREA VARCHAR(45) NOT NULL,
      CONSTRAINT FARM_FARM_ID_CON FOREIGN KEY(FARM_FARM_ID)
      REFERENCES FARM(FARM_ID)
      )ENGINE = INNODB;

      CREATE TABLE IF NOT EXISTS VISIT
      (
      VISIT_ID INT NOT NULL PRIMARY KEY,
      GATHERING DATE,
      PADDOCK_PADDOCK_NUM INT NOT NULL,
      PADDOCK_FARM_ID INT NOT NULL,
      CONSTRAINT PADDOCK_PADDOCK_NUM_CON FOREIGN KEY(PADDOCK_PADDOCK_NUM)
      REFERENCES PADDOCK(PADDOCK_NUM),
      CONSTRAINT PADDOCK_PADDOCK_FARM_ID_CON FOREIGN KEY(PADDOCK_FARM_ID)
      REFERENCES PADDOCK(FARM_FARM_ID)
      )ENGINE = INNODB;

      CREATE TABLE IF NOT EXISTS VISIT
      (
      VISIT_ID INT NOT NULL PRIMARY KEY,
      GATHERING DATE,
      PADDOCK_PADDOCK_NUM INT NOT NULL,
      PADDOCK_FARM_ID INT NOT NULL,
      CONSTRAINT PADDOCK_PADDOCK_NUM_CON FOREIGN KEY(PADDOCK_PADDOCK_NUM)
      REFERENCES PADDOCK(PADDOCK_NUM),
      CONSTRAINT PADDOCK_PADDOCK_FARM_ID_CON FOREIGN KEY(PADDOCK_FARM_ID)
      REFERENCES PADDOCK(FARM_FARM_ID),
      UNIQUE KEY(PADDOCK_PADDOCK_NUM, PADDOCK_FARM_ID, GATHERING)
      )ENGINE = INNODB;

      CREATE TABLE IF NOT EXISTS SAMPLE
      (
      SAMPLE_NUM INT UNSIGNED NOT NULL AUTO_INCREMENT,
      VISIT_VISIT_ID INT NOT NULL,
      PRIMARY KEY(SAMPLE_NUM, VISIT_VISIT_ID),
      COUNT INT,
      CONSTRAINT VISIT_VISIT_ID_CON FOREIGN KEY(VISIT_VISIT_ID)
      REFERENCES VISIT(VISIT_ID)
      )ENGINE = INNODB;

      P Online
      P Online
      PIEBALDconsult
      wrote on last edited by
      #2

      What database system?

      N 1 Reply Last reply
      0
      • P PIEBALDconsult

        What database system?

        N Offline
        N Offline
        noislude
        wrote on last edited by
        #3

        >I created an empty database for MySQL: paddock.

        CREATE DATABASE PADDOCK;
        USE PADDOCK;

        M 1 Reply Last reply
        0
        • N noislude

          >I created an empty database for MySQL: paddock.

          CREATE DATABASE PADDOCK;
          USE PADDOCK;

          M Offline
          M Offline
          Mycroft Holmes
          wrote on last edited by
          #4

          Just a thought, I don't know MySQL, but is there a constraint where you cannot have an object the same name as the database. EF has such a constraint on field/table names.

          Never underestimate the power of human stupidity RAH

          N 1 Reply Last reply
          0
          • M Mycroft Holmes

            Just a thought, I don't know MySQL, but is there a constraint where you cannot have an object the same name as the database. EF has such a constraint on field/table names.

            Never underestimate the power of human stupidity RAH

            N Offline
            N Offline
            noislude
            wrote on last edited by
            #5

            sorry. In fact, I created the database paddock in lowercase:

            create database paddock;
            use paddock;

            (I think I was writing some SQL code at that moment with uppercase)

            L 1 Reply Last reply
            0
            • N noislude

              edit: the EER model link to the EER Model Hi, good morning from Brazil. What's the right way to create the Visit table below?

              CREATE TABLE IF NOT EXISTS FARM
              (
              FARM_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
              FARM_NAME VARCHAR(45) NOT NULL,
              ADDRESS VARCHAR(45) NOT NULL,
              OWNER VARCHAR(45) NOT NULL
              )ENGINE = INNODB;

              CREATE TABLE IF NOT EXISTS PADDOCK
              (
              PADDOCK_NUM INT NOT NULL,
              FARM_FARM_ID INT NOT NULL,
              PRIMARY KEY(FARM_FARM_ID, PADDOCK_NUM),
              AREA VARCHAR(45) NOT NULL,
              CONSTRAINT FARM_FARM_ID_CON FOREIGN KEY(FARM_FARM_ID)
              REFERENCES FARM(FARM_ID)
              )ENGINE = INNODB;

              CREATE TABLE IF NOT EXISTS VISIT
              (
              VISIT_ID INT NOT NULL PRIMARY KEY,
              GATHERING DATE,
              PADDOCK_PADDOCK_NUM INT NOT NULL,
              PADDOCK_FARM_ID INT NOT NULL,
              CONSTRAINT PADDOCK_PADDOCK_NUM_CON FOREIGN KEY(PADDOCK_PADDOCK_NUM)
              REFERENCES PADDOCK(PADDOCK_NUM),
              CONSTRAINT PADDOCK_PADDOCK_FARM_ID_CON FOREIGN KEY(PADDOCK_FARM_ID)
              REFERENCES PADDOCK(FARM_FARM_ID)
              )ENGINE = INNODB;

              CREATE TABLE IF NOT EXISTS VISIT
              (
              VISIT_ID INT NOT NULL PRIMARY KEY,
              GATHERING DATE,
              PADDOCK_PADDOCK_NUM INT NOT NULL,
              PADDOCK_FARM_ID INT NOT NULL,
              CONSTRAINT PADDOCK_PADDOCK_NUM_CON FOREIGN KEY(PADDOCK_PADDOCK_NUM)
              REFERENCES PADDOCK(PADDOCK_NUM),
              CONSTRAINT PADDOCK_PADDOCK_FARM_ID_CON FOREIGN KEY(PADDOCK_FARM_ID)
              REFERENCES PADDOCK(FARM_FARM_ID),
              UNIQUE KEY(PADDOCK_PADDOCK_NUM, PADDOCK_FARM_ID, GATHERING)
              )ENGINE = INNODB;

              CREATE TABLE IF NOT EXISTS SAMPLE
              (
              SAMPLE_NUM INT UNSIGNED NOT NULL AUTO_INCREMENT,
              VISIT_VISIT_ID INT NOT NULL,
              PRIMARY KEY(SAMPLE_NUM, VISIT_VISIT_ID),
              COUNT INT,
              CONSTRAINT VISIT_VISIT_ID_CON FOREIGN KEY(VISIT_VISIT_ID)
              REFERENCES VISIT(VISIT_ID)
              )ENGINE = INNODB;

              B Offline
              B Offline
              Bernhard Hiller
              wrote on last edited by
              #6

              The difference between your two statements is the additional key in the second statement. Keys are important for searching data/retrieving data. So it depends on how you would normally get the data from that table. Also note that a References statement may not cause the creation of a key - I am not sure here with MySQL. So for the JOINs with the other tables, additional Keys could be appropriate.

              1 Reply Last reply
              0
              • N noislude

                edit: the EER model link to the EER Model Hi, good morning from Brazil. What's the right way to create the Visit table below?

                CREATE TABLE IF NOT EXISTS FARM
                (
                FARM_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
                FARM_NAME VARCHAR(45) NOT NULL,
                ADDRESS VARCHAR(45) NOT NULL,
                OWNER VARCHAR(45) NOT NULL
                )ENGINE = INNODB;

                CREATE TABLE IF NOT EXISTS PADDOCK
                (
                PADDOCK_NUM INT NOT NULL,
                FARM_FARM_ID INT NOT NULL,
                PRIMARY KEY(FARM_FARM_ID, PADDOCK_NUM),
                AREA VARCHAR(45) NOT NULL,
                CONSTRAINT FARM_FARM_ID_CON FOREIGN KEY(FARM_FARM_ID)
                REFERENCES FARM(FARM_ID)
                )ENGINE = INNODB;

                CREATE TABLE IF NOT EXISTS VISIT
                (
                VISIT_ID INT NOT NULL PRIMARY KEY,
                GATHERING DATE,
                PADDOCK_PADDOCK_NUM INT NOT NULL,
                PADDOCK_FARM_ID INT NOT NULL,
                CONSTRAINT PADDOCK_PADDOCK_NUM_CON FOREIGN KEY(PADDOCK_PADDOCK_NUM)
                REFERENCES PADDOCK(PADDOCK_NUM),
                CONSTRAINT PADDOCK_PADDOCK_FARM_ID_CON FOREIGN KEY(PADDOCK_FARM_ID)
                REFERENCES PADDOCK(FARM_FARM_ID)
                )ENGINE = INNODB;

                CREATE TABLE IF NOT EXISTS VISIT
                (
                VISIT_ID INT NOT NULL PRIMARY KEY,
                GATHERING DATE,
                PADDOCK_PADDOCK_NUM INT NOT NULL,
                PADDOCK_FARM_ID INT NOT NULL,
                CONSTRAINT PADDOCK_PADDOCK_NUM_CON FOREIGN KEY(PADDOCK_PADDOCK_NUM)
                REFERENCES PADDOCK(PADDOCK_NUM),
                CONSTRAINT PADDOCK_PADDOCK_FARM_ID_CON FOREIGN KEY(PADDOCK_FARM_ID)
                REFERENCES PADDOCK(FARM_FARM_ID),
                UNIQUE KEY(PADDOCK_PADDOCK_NUM, PADDOCK_FARM_ID, GATHERING)
                )ENGINE = INNODB;

                CREATE TABLE IF NOT EXISTS SAMPLE
                (
                SAMPLE_NUM INT UNSIGNED NOT NULL AUTO_INCREMENT,
                VISIT_VISIT_ID INT NOT NULL,
                PRIMARY KEY(SAMPLE_NUM, VISIT_VISIT_ID),
                COUNT INT,
                CONSTRAINT VISIT_VISIT_ID_CON FOREIGN KEY(VISIT_VISIT_ID)
                REFERENCES VISIT(VISIT_ID)
                )ENGINE = INNODB;

                Richard DeemingR Offline
                Richard DeemingR Offline
                Richard Deeming
                wrote on last edited by
                #7

                You haven't specified what error you're getting when you run the script. For a start, you've got two CREATE TABLE IF NOT EXISTS VISIT blocks - only the first one will run. I'm not overly familiar with MySQL, but in SQL you'd need to include both columns in a single foreign key:

                CONSTRAINT PADDOCK_FARM_ID_PADDOCK_NUM_CON (PADDOCK_FARM_ID, PADDOCK_PADDOCK_NUM)
                REFERENCES PADDOCK (FARM_FARM_ID, PADDOCK_NUM)


                "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                1 Reply Last reply
                0
                • N noislude

                  sorry. In fact, I created the database paddock in lowercase:

                  create database paddock;
                  use paddock;

                  (I think I was writing some SQL code at that moment with uppercase)

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #8

                  noislude wrote:

                  I created the database paddock in lowercase:

                  The server doesn't care about upper- or lowercase; the name is case-insensitive. Same goes for tables and column-names.

                  Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Categories
                  • Recent
                  • Tags
                  • Popular
                  • World
                  • Users
                  • Groups