如何声明没有主键的表?

时间:2015-12-27 18:28:19

标签: mysql

我使用的是MySQL Query Browser。

我试过这段代码:

CREATE TABLE  `something`.`payment_something` (
    `firstName` varchar(15) NOT NULL,
    `lastName` varchar(15) NOT NULL,
    `inputEmail` varchar(55) NOT NULL,
    `genderRadios` varchar(15) NOT NULL,
    `monthh` varchar(10) NOT NULL,
    `dayy` varchar(10) NOT NULL,
    `yearr` varchar(10) NOT NULL,
    `postalAddress` varchar(15) NOT NULL,
    `phoneNumber` varchar(15) NOT NULL,
    `ZipCode` varchar(15) NOT NULL,
    `CreditCard` varchar(15) NOT NULL,
    `expireMonth` varchar(10) NOT NULL,
    `expireYear` varchar(10) NOT NULL,
    `Institution` varchar(25) NOT NULL,
    `textinput` varchar(15) NOT NULL,
    `radios` varchar(10) NOT NULL,
    PRIMARY KEY ()
) ENGINE=InnoDB DEFAULT CHARSET=greek;

当然它显示PRIMARY KEY行中的错误。有什么想法吗?

编辑更好的解决方案

CREATE TABLE  `something`.`payment_something` (
    `id` int(15) NOT NULL AUTO_INCREMENT,
    `firstName` varchar(15) NOT NULL,
    `lastName` varchar(15) NOT NULL,
    `inputEmail` varchar(55) NOT NULL,
    `genderRadios` varchar(15) NOT NULL,
    `monthh` varchar(10) NOT NULL,
    `dayy` varchar(10) NOT NULL,
    `yearr` varchar(10) NOT NULL,
    `postalAddress` varchar(15) NOT NULL,
    `phoneNumber` varchar(15) NOT NULL,
    `ZipCode` varchar(15) NOT NULL,
    `CreditCard` varchar(15) NOT NULL,
    `expireMonth` varchar(10) NOT NULL,
    `expireYear` varchar(10) NOT NULL,
    `Institution` varchar(25) NOT NULL,
    `textinput` varchar(15) NOT NULL,
    `radios` varchar(10) NOT NULL,
    PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=greek;

它在PRIMARY KEY行显示错误原因?

1 个答案:

答案 0 :(得分:0)

只需排除有问题的一行:

PRIMARY KEY ()

如果您实际上没有定义密钥,则不需要该行。在您的示例中,您还必须删除此行之前的逗号。

更新:

在您更新的示例中,只需在声明时''关闭'id'即可。使用反引号(`),而不是撇号:

PRIMARY KEY (`id`)