为什么我无法将值插入到我的 SQL 数据库中?
Why am I not being able to insert values into my SQL database?
我正在做一个学校项目,我们在其中创建三个表并使用 MYSQL Workbench.
向它们插入一些值
很简单的东西吧?以下是正在创建的表:
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;
CREATE TABLE IF NOT EXISTS `mydb`.`Regiao` (
`codRegiao` BIGINT NOT NULL,
`nomeRegiao` VARCHAR(100) NOT NULL,
`descricaoRegiao` TEXT NULL,
PRIMARY KEY (`codRegiao`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`Vinicola` (
`codVinicola` BIGINT NOT NULL,
`nomeVinicola` VARCHAR(100) NOT NULL,
`descricaoVinicola` TEXT NULL,
`foneVinicola` VARCHAR(15) NULL,
`emailVinicola` VARCHAR(15) NULL,
`codRegiao` BIGINT NOT NULL,
PRIMARY KEY (`codVinicola`),
INDEX `fk_Vinicola_Regiao1_idx` (`codRegiao` ASC) VISIBLE,
CONSTRAINT `fk_Vinicola_Regiao1`
FOREIGN KEY (`codRegiao`)
REFERENCES `mydb`.`Regiao` (`codRegiao`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`Vinho` (
`codVinho` BIGINT NOT NULL,
`nomeVinho` VARCHAR(50) NOT NULL,
`tipoVinho` VARCHAR(30) NOT NULL,
`anoVinho` INT NOT NULL,
`descricaoVinho` TEXT NULL,
`codVinicola` BIGINT NOT NULL,
PRIMARY KEY (`codVinho`),
INDEX `fk_Vinho_Vinicola_idx` (`codVinicola` ASC) VISIBLE,
CONSTRAINT `fk_Vinho_Vinicola`
FOREIGN KEY (`codVinicola`)
REFERENCES `mydb`.`Vinicola` (`codVinicola`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
这里是我试图在其中构建以将值插入到表中的脚本:
insert into `mydb`.`Regiao` values (1, "Campos Alegres", "Lindos campos verdes");
insert into `mydb`.`Regiao` values (2, "Campos Tristes", "Campos cinzas e planos");
insert into `mydb`.`Regiao` values (3, "Planalto Central", "Campos verdes e montanhosos");
insert into `mydb`.`Regiao` values (4, "Montanhas Roxas", "Terrenos montanhosos e rochosos");
insert into `mydb`.`Regiao` values (5, "Caverna do Dragão", "Temperatura amena e úmida");
insert into `mydb`.`Vinicola` values (1, "Durigan" , "Vinhos para te deixar alegre", "12345678901", "vinhosdurigan@yahoo.com" , 1);
insert into `mydb`.`Vinicola` values (2, "Legado" , "Vinhos para te deixar triste", "45623572901", "vinhoslegado@yahoo.com" , 2);
insert into `mydb`.`Vinicola` values (3, "Franco" , "Vinhos para subir nas alturas", "918273531", "vinhosfranco@yahoo.com" , 3);
insert into `mydb`.`Vinicola` values (4, "Bento" , "Vinhos afrodisíacos", "9102184629", "vinhosbento@yahoo.com" , 4);
insert into `mydb`.`Vinicola` values (5, "Busato" , "Vinhos do centro da terra", "9182736409", "vinhosbusato@yahoo.com" , 5);
insert into `mydb`.`Vinho` values (1, "Manacá", "Merlot", 1998, "Sabor seco e doce", 1);
insert into `mydb`.`Vinho` values (2, "Tupinambá", "Cabernet Sauvignon", 2011, "Sabor suave e doce", 2);
insert into `mydb`.`Vinho` values (3, "Xavassa", "Pinot Noir", 1972, "Vinho tinto e seco", 3);
insert into `mydb`.`Vinho` values (4, "Tiluriloca", "Syrah", 2010, "Vinho rosé", 4);
insert into `mydb`.`Vinho` values (5, "Lapolipo", "Malbec", 2021, "Vinho branco", 5);
问题是它不起作用,出于某种原因,“Vinho”和“Vinicola”正在获取 none 个值,仅显示 NULL 列。
我认为这可能与关系键有关,但我一直无法弄清楚。
如果有人能帮助我,我将不胜感激。
您的问题出在 Vinicola.emailVinicola 列的定义中
VARCHAR(15) NULL
您的电子邮件地址超过 15 个字符,因此插入失败,然后由于限制导致 Vinho table 插入失败。
将列的大小增加到合适的值,例如 VARCHAR(80)
我正在做一个学校项目,我们在其中创建三个表并使用 MYSQL Workbench.
向它们插入一些值很简单的东西吧?以下是正在创建的表:
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;
CREATE TABLE IF NOT EXISTS `mydb`.`Regiao` (
`codRegiao` BIGINT NOT NULL,
`nomeRegiao` VARCHAR(100) NOT NULL,
`descricaoRegiao` TEXT NULL,
PRIMARY KEY (`codRegiao`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`Vinicola` (
`codVinicola` BIGINT NOT NULL,
`nomeVinicola` VARCHAR(100) NOT NULL,
`descricaoVinicola` TEXT NULL,
`foneVinicola` VARCHAR(15) NULL,
`emailVinicola` VARCHAR(15) NULL,
`codRegiao` BIGINT NOT NULL,
PRIMARY KEY (`codVinicola`),
INDEX `fk_Vinicola_Regiao1_idx` (`codRegiao` ASC) VISIBLE,
CONSTRAINT `fk_Vinicola_Regiao1`
FOREIGN KEY (`codRegiao`)
REFERENCES `mydb`.`Regiao` (`codRegiao`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`Vinho` (
`codVinho` BIGINT NOT NULL,
`nomeVinho` VARCHAR(50) NOT NULL,
`tipoVinho` VARCHAR(30) NOT NULL,
`anoVinho` INT NOT NULL,
`descricaoVinho` TEXT NULL,
`codVinicola` BIGINT NOT NULL,
PRIMARY KEY (`codVinho`),
INDEX `fk_Vinho_Vinicola_idx` (`codVinicola` ASC) VISIBLE,
CONSTRAINT `fk_Vinho_Vinicola`
FOREIGN KEY (`codVinicola`)
REFERENCES `mydb`.`Vinicola` (`codVinicola`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
这里是我试图在其中构建以将值插入到表中的脚本:
insert into `mydb`.`Regiao` values (1, "Campos Alegres", "Lindos campos verdes");
insert into `mydb`.`Regiao` values (2, "Campos Tristes", "Campos cinzas e planos");
insert into `mydb`.`Regiao` values (3, "Planalto Central", "Campos verdes e montanhosos");
insert into `mydb`.`Regiao` values (4, "Montanhas Roxas", "Terrenos montanhosos e rochosos");
insert into `mydb`.`Regiao` values (5, "Caverna do Dragão", "Temperatura amena e úmida");
insert into `mydb`.`Vinicola` values (1, "Durigan" , "Vinhos para te deixar alegre", "12345678901", "vinhosdurigan@yahoo.com" , 1);
insert into `mydb`.`Vinicola` values (2, "Legado" , "Vinhos para te deixar triste", "45623572901", "vinhoslegado@yahoo.com" , 2);
insert into `mydb`.`Vinicola` values (3, "Franco" , "Vinhos para subir nas alturas", "918273531", "vinhosfranco@yahoo.com" , 3);
insert into `mydb`.`Vinicola` values (4, "Bento" , "Vinhos afrodisíacos", "9102184629", "vinhosbento@yahoo.com" , 4);
insert into `mydb`.`Vinicola` values (5, "Busato" , "Vinhos do centro da terra", "9182736409", "vinhosbusato@yahoo.com" , 5);
insert into `mydb`.`Vinho` values (1, "Manacá", "Merlot", 1998, "Sabor seco e doce", 1);
insert into `mydb`.`Vinho` values (2, "Tupinambá", "Cabernet Sauvignon", 2011, "Sabor suave e doce", 2);
insert into `mydb`.`Vinho` values (3, "Xavassa", "Pinot Noir", 1972, "Vinho tinto e seco", 3);
insert into `mydb`.`Vinho` values (4, "Tiluriloca", "Syrah", 2010, "Vinho rosé", 4);
insert into `mydb`.`Vinho` values (5, "Lapolipo", "Malbec", 2021, "Vinho branco", 5);
问题是它不起作用,出于某种原因,“Vinho”和“Vinicola”正在获取 none 个值,仅显示 NULL 列。
我认为这可能与关系键有关,但我一直无法弄清楚。
如果有人能帮助我,我将不胜感激。
您的问题出在 Vinicola.emailVinicola 列的定义中
VARCHAR(15) NULL
您的电子邮件地址超过 15 个字符,因此插入失败,然后由于限制导致 Vinho table 插入失败。
将列的大小增加到合适的值,例如 VARCHAR(80)