首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dockerfile不从我的initialize.sql创建表

Dockerfile不从我的initialize.sql创建表
EN

Stack Overflow用户
提问于 2019-07-17 12:57:59
回答 1查看 863关注 0票数 1

我想做这个自定义-你的-mysql-数据库-在-码头

我执行了docker容器,并向我显示了数据库"studienarbeit“。但是,当我使用命令show表时,它告诉我数据库中没有表。

所以我假设我的Dockerfile或我的initializeDB.sql有什么问题吗?

文档:

代码语言:javascript
复制
FROM mysql
ENV MYSQL_DATABASE studienarbeit
COPY ./sql-scripts/ /docker-entrypoint-initdb.d/

InitializeDB.sql:

代码语言:javascript
复制
CREATE TABLE `buchausleihe` (
  `ausleihnummer` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(45) NOT NULL,
  `Typ` varchar(45) NOT NULL,
  `personid` int(11) NOT NULL,
  `seriennummer` int(11) NOT NULL,
  `Ausleihdatum` varchar(45) NOT NULL,
  `Rückgabedatum` varchar(45) NOT NULL,
  UNIQUE KEY `ausleihnummer_UNIQUE` (`ausleihnummer`),
  UNIQUE KEY `seriennummer_UNIQUE` (`seriennummer`),
  KEY `personid_idx` (`personid`),
  CONSTRAINT `personid` FOREIGN KEY (`personid`) REFERENCES `person` (`personid`) ON DELETE CASCADE,
  CONSTRAINT `seriennummer` FOREIGN KEY (`seriennummer`) REFERENCES `buchexemplar` (`seriennummer`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `buchexemplar` (
  `Seriennummer` int(11) NOT NULL,
  `Buchstatus` varchar(45) NOT NULL,
  `buchid` int(11) NOT NULL,
  PRIMARY KEY (`Seriennummer`),
  KEY `buchid_idx` (`buchid`),
  CONSTRAINT `buchid` FOREIGN KEY (`buchid`) REFERENCES `buchtyp` (`buchid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `buchtyp` (
  `Buchid` int(11) NOT NULL AUTO_INCREMENT,
  `Autor` varchar(45) NOT NULL,
  `Titel` varchar(45) NOT NULL,
  `ISBN` int(11) NOT NULL,
  PRIMARY KEY (`Buchid`),
  UNIQUE KEY `ISBN_UNIQUE` (`ISBN`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `person` (
  `PersonID` int(11) NOT NULL AUTO_INCREMENT,
  `Typ` varchar(45) NOT NULL,
  `Name` varchar(45) NOT NULL,
  `Vorname` varchar(45) NOT NULL,
  `Faku` varchar(45) DEFAULT NULL,
  `Matrikelnr` int(11) DEFAULT NULL,
  `Gruppe` varchar(45) DEFAULT NULL,
  `Straße` varchar(45) DEFAULT NULL,
  `Hausnummer` varchar(45) DEFAULT NULL,
  `Ort` varchar(45) DEFAULT NULL,
  `Plz` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`PersonID`),
  UNIQUE KEY `PersonID_UNIQUE` (`PersonID`),
  UNIQUE KEY `Matrikelnr_UNIQUE` (`Matrikelnr`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `student` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(45) NOT NULL,
  `Gruppe` varchar(45) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-17 14:47:28

问题不是码头,您的SQL文件无效。您可以在文件中创建下面的表,并在脚本开始时引用表。

检查码头集装箱的日志。

代码语言:javascript
复制
use studienarbeit;
CREATE TABLE `buchtyp` (
  `Buchid` int(11) NOT NULL AUTO_INCREMENT,
  `Autor` varchar(45) NOT NULL,
  `Titel` varchar(45) NOT NULL,
  `ISBN` int(11) NOT NULL,
  PRIMARY KEY (`Buchid`),
  UNIQUE KEY `ISBN_UNIQUE` (`ISBN`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `person` (
  `PersonID` int(11) NOT NULL AUTO_INCREMENT,
  `Typ` varchar(45) NOT NULL,
  `Name` varchar(45) NOT NULL,
  `Vorname` varchar(45) NOT NULL,
  `Faku` varchar(45) DEFAULT NULL,
  `Matrikelnr` int(11) DEFAULT NULL,
  `Gruppe` varchar(45) DEFAULT NULL,
  `Straße` varchar(45) DEFAULT NULL,
  `Hausnummer` varchar(45) DEFAULT NULL,
  `Ort` varchar(45) DEFAULT NULL,
  `Plz` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`PersonID`),
  UNIQUE KEY `PersonID_UNIQUE` (`PersonID`),
  UNIQUE KEY `Matrikelnr_UNIQUE` (`Matrikelnr`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `student` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(45) NOT NULL,
  `Gruppe` varchar(45) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `buchexemplar` (
  `Seriennummer` int(11) NOT NULL,
  `Buchstatus` varchar(45) NOT NULL,
  `buchid` int(11) NOT NULL,
  PRIMARY KEY (`Seriennummer`),
  KEY `buchid_idx` (`buchid`),
  CONSTRAINT `buchid` FOREIGN KEY (`buchid`) REFERENCES `buchtyp` (`buchid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `buchausleihe` (
  `ausleihnummer` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(45) NOT NULL,
  `Typ` varchar(45) NOT NULL,
  `personid` int(11) NOT NULL,
  `seriennummer` int(11) NOT NULL,
  `Ausleihdatum` varchar(45) NOT NULL,
  `Rückgabedatum` varchar(45) NOT NULL,
  UNIQUE KEY `ausleihnummer_UNIQUE` (`ausleihnummer`),
  UNIQUE KEY `seriennummer_UNIQUE` (`seriennummer`),
  KEY `personid_idx` (`personid`),
  CONSTRAINT `personid` FOREIGN KEY (`personid`) REFERENCES `person` (`personid`) ON DELETE CASCADE,
  CONSTRAINT `seriennummer` FOREIGN KEY (`seriennummer`) REFERENCES `buchexemplar` (`seriennummer`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57076413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档