相关疑难解决方法(0)

MySQL 1062 - 密钥'PRIMARY'的重复条目'0'

我在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=restrictonupdate=restrict.

现在,我需要更改结构并在表中引入单独的主键,同时仍保留现有的关系和数据.为此,我执行了以下查询:

ALTER TABLE  `momento_distribution` ADD  `id` INT( 11 ) NOT NULL FIRST;
ALTER TABLE  `momento_distribution` DROP PRIMARY …
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql5

38
推荐指数
5
解决办法
19万
查看次数

RESTful POST 方法可以实现为幂等的吗?

我正在设计一个管理收藏夹的 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 是幂等的。

哪种方法是正确的?

rest post http

6
推荐指数
1
解决办法
2219
查看次数

标签 统计

http ×1

mysql ×1

mysql5 ×1

post ×1

rest ×1

sql ×1