我在MySQL版本5.5.24中有下表
DROP TABLE IF EXISTS `momento_distribution`;
CREATE TABLE IF NOT EXISTS `momento_distribution`
(
`momento_id` INT(11) NOT NULL,
`momento_idmember` INT(11) NOT NULL,
`created_at` DATETIME DEFAULT NULL,
`updated_at` DATETIME DEFAULT NULL,
`unread` TINYINT(1) DEFAULT '1',
`accepted` VARCHAR(10) NOT NULL DEFAULT 'pending',
`ext_member` VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (`momento_id`, `momento_idmember`),
KEY `momento_distribution_FI_2` (`momento_idmember`),
KEY `accepted` (`accepted`, `ext_member`)
)
ENGINE=InnoDB
DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)
它有大量的数据与两个其他表多到一个关系ondelete=restrict和onupdate=restrict.
现在,我需要更改结构并在表中引入单独的主键,同时仍保留现有的关系和数据.为此,我执行了以下查询:
ALTER TABLE `momento_distribution` ADD `id` INT( 11 ) NOT NULL FIRST;
ALTER TABLE `momento_distribution` DROP PRIMARY …Run Code Online (Sandbox Code Playgroud) 我正在设计一个管理收藏夹的 RESTful API。每个收藏资源可以包含被视为收藏的一部分的两个项目的详细信息。
HTTP POST /favorites
{ "item1" : "ball",
"item1-ID" : "1",
"item2" : "bat",
"item2-ID" : "2"
}
Run Code Online (Sandbox Code Playgroud)
请原谅基本的 JSON 有效负载。然而,重点是 POST 的语义
上面的 POST 方法创建了一个新的收藏夹资源(包含一个球(ID 1)和一个球棒(ID 2))
我的问题是关于同一 POST 请求被发送两次时的预期行为。第一个请求将创建一个收藏夹(如预期)。发送第二个请求时会发生什么?
1) 用 409 发出错误信号
2) 用 201 表示成功
1) 不是幂等的(就像 POST 一样),而 2) 使 POST 是幂等的。
哪种方法是正确的?