Почему я не могу проверить таблицы моей базы данных?

#mysql #database #workbench #population

#mysql #База данных #workbench #население

Вопрос:

Начну с того, что мой опыт работы с MySQL ограничен. Я использую workbench всего несколько месяцев. Я и пара приятелей работаем над базой данных для сценария зоомагазина, и мне было поручено написать несколько запросов, чтобы протестировать его. Сначала скрипт моего приятеля для базы данных не запускался, потому что я получал ошибки с ключевым словом «VISIBLE». Поскольку индексы видны по умолчанию, я удалил их все. Затем я получил сообщение об ошибке, что для некоторых из его первичных ключей было установлено значение null. Я предположил, что это было случайно, и установил для них всех значение «NOT NULL». Затем я приступил к запуску скрипта и не получил ошибок, поэтому я предположил, что все в порядке. Он сказал мне, что недавно заполнил таблицы, но, похоже, он этого не сделал. Я имею в виду, я не уверен, что он это сделал, но, похоже, у него, по крайней мере, хорошо выстроены колонки. Когда я запустил код, я проверил таблицы, но в списке таблиц не было. Я не уверен, куда идти дальше. Я приложу соответствующий код. Если кто-нибудь может указать мне правильное направление, я был бы благодарен.

 -- Tue Nov 24 20:45:34 2020
-- Model: New Model    Version: 1.0
-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;

-- -----------------------------------------------------
-- Table `mydb`.`species`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`species` (
  `species_id` INT NOT NULL,
  `species_name` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`species_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`animals`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`animals` (
  `animal_id` INT NOT NULL,
  `species_id` INT NOT NULL,
  `animal_name` VARCHAR(45) NOT NULL,
  `price` DECIMAL(8,2) NOT NULL,
  `date_arived` DATETIME not NULL,
  `quantity` INT NOT NULL,
  PRIMARY KEY (`animal_id`),
  INDEX `species_id_fk_idx` (`species_id` ASC),
  CONSTRAINT `species_id_fk`
    FOREIGN KEY (`species_id`)
    REFERENCES `mydb`.`species` (`species_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`distributors`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`distributors` (
  `distributor_id` INT NOT NULL,
  `distributor_email` VARCHAR(255) NOT NULL,
  `distributor_name` VARCHAR(45) NOT NULL,
  `distributor_address` VARCHAR(45) NOT NULL,
  `distributor_phone` VARCHAR(15) NOT NULL,
  PRIMARY KEY (`distributor_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`orders`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`orders` (
  `order_number` INT not NULL,
  `distributor_id` INT NOT NULL,
  `order_date` DATETIME not NULL,
  `arival_date` DATETIME not NULL,
  PRIMARY KEY (`order_number`),
  INDEX `distributor_id_fk_idx` (`distributor_id` ASC),
  CONSTRAINT `distributor_id_fk`
    FOREIGN KEY (`distributor_id`)
    REFERENCES `mydb`.`distributors` (`distributor_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`invoice`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`invoice` (
  `invoice_id` INT NOT NULL,
  `order_number` INT NOT NULL,
  `animal_id` INT NOT NULL,
  `animal_price` DECIMAL(8,2) NOT NULL,
  `quantity` INT NOT NULL,
  PRIMARY KEY (`invoice_id`),
  INDEX `order_number_fk_idx` (`order_number` ASC),
  INDEX `animal_id_fk_idx` (`animal_id` ASC),
  CONSTRAINT `order_number_fk`
    FOREIGN KEY (`order_number`)
    REFERENCES `mydb`.`orders` (`order_number`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `animal_id_fk`
    FOREIGN KEY (`animal_id`)
    REFERENCES `mydb`.`animals` (`animal_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
 

Комментарии:

1. SQL Server ! = MySQL.

2. Спасибо! У меня не было возможности использовать более релевантные теги. Извините!

3. Какая версия MySQL? Что вы использовали для проверки? Почему вы не спрашиваете свою команду?

4. Если бы БД была заполнена, я бы ожидал увидеть много инструкций insert в скрипте — их нет, так что либо БД не была заполнена, либо экспорт из БД не включал данные.

5. Кроме того, что БД генерирует таблицы, когда я ее тестирую, возможно, вам просто нужно обновить ide или ПОКАЗАТЬ ТАБЛИЦЫ для просмотра таблиц.