gpt4 book ai didi

Mysql如何添加多个值(在一个框中)

转载 作者:行者123 更新时间:2023-11-29 13:22:51 25 4
gpt4 key购买 nike

我正在尝试添加多个值

INSERT INTO Requierments (item_ID, SName) VALUES ( 
05, 'Exotic Weapons''basic weapon');

这可能吗?我已经准备好尝试 |& 但我不被允许这样做。

这一想法是为了证明 item_ID 需要多个 Sname。

如果不需要SName,我该如何编码,在alter table中它显示它们默认为item_ID“0” 和 '' 代表 Sname,但是当我尝试时:

 INSERT INTO Requierments (item_ID, SName) VALUES ( 
02, '');

INSERT INTO Requierments (item_ID, SName) VALUES ( 
02, );

发生错误。 item_IDSName 是两个不同表的主键和外键

CREATE TABLE `requierments` (
`item_ID` int(11) NOT NULL DEFAULT '0',
`SName` varchar(30) NOT NULL DEFAULT '',
PRIMARY KEY (`item_ID`,`SName`),
KEY `SName` (`SName`),
CONSTRAINT `requierments_ibfk_1` FOREIGN KEY (`item_ID`) REFERENCES `item` (`ID`),
CONSTRAINT `requierments_ibfk_2` FOREIGN KEY (`SName`) REFERENCES `talents` (`SkillName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `talents` (
`SkillName` varchar(40) NOT NULL DEFAULT '',
`Bonus` varchar(30) DEFAULT NULL,
`Description` varchar(90) DEFAULT NULL,
`R_Str` int(11) DEFAULT NULL,
`R_WS` int(11) DEFAULT NULL,
`R_BS` int(11) DEFAULT NULL,
`R_Fel` int(11) DEFAULT NULL,
`R_Per` int(11) DEFAULT NULL,
`R_Int` int(11) DEFAULT NULL,
`R_Agi` int(11) DEFAULT NULL,
`R_WP` int(11) DEFAULT NULL,
`Talent_requiret` varchar(40) DEFAULT NULL,
PRIMARY KEY (`SkillName`),
KEY `Talent_requiret` (`Talent_requiret`),
CONSTRAINT `talents_ibfk_1` FOREIGN KEY (`Talent_requiret`) REFERENCES `talents` (`SkillName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `item` (
`ID` int(11) NOT NULL DEFAULT '0',
`Name_` varchar(30) DEFAULT NULL,
`Weight` int(11) DEFAULT NULL,
`Value_` int(11) DEFAULT NULL,
`Availability` varchar(30) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这里是我想要在需求表中存储 item_ID 需要在 SName 下使用的 3 个表,因为一个项目可能需要有多个一个 SName 或没有,它会混淆要做什么。

最佳答案

'Exotic Weapons''basic weapon'语法被解释为 'Exotic Weapons'basic weapon' (参见manual page on String Literals)。如果您用逗号或其他特殊字符( 'Exotic Weapons,basic weapon' )分隔它们,则可以存储两者,但这是一个坏主意,原因如下。

每当您想在一列中存储多个值时,您都应该有一个新表来存储每个值并将其链接到 item_ID有问题。这称为“规范化”——它使您的数据库更加稳定,您的应用程序代码更加简单,并且随着您的前进和修改,一切都更有可能正常工作。搜索“数据库规范化”并了解如何执行您想要执行的操作。

编辑:仍然有点难以说出您要做什么,但看起来您只想在 items 中存储多个元组。示例:

INSERT INTO Requierments (item_ID, SName) VALUES
(5, 'Exotic Weapons'),
(5, 'basic weapon');

请注意,它应该是 5 ,不是05 。这就是为什么INSERT INTO Requierments (item_ID, SName) VALUES ( 02, '');失败。另外,您不能只省略一个值并留有空格,就像在其他示例中一样: INSERT INTO Requierments (item_ID, SName) VALUES ( 02, );

老实说,很难说出您在这里想要做什么,而且表结构和 SQL 语法的基础知识似乎有些困惑。例如,这一说法非常令人困惑和不清楚:“由于一项可能需要有多个 SName 或没有,因此它会混淆要做什么。”如果您可以更清楚地说明您希望表如何相互关联以及您遇到的困难,您将从 SO 社区获得更多帮助。

关于Mysql如何添加多个值(在一个框中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20555056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com