mysql创建表由sql文件做成奇怪的表结构

xriantvc  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(302)

我使用mysql db5.6作为某种实践。作为创建表格的工具,我使用navicat并用这个

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for promet
-- ----------------------------
DROP TABLE IF EXISTS `traffic`;
CREATE TABLE `traffic` (
`p_id` bigint(20) NOT NULL AUTO_INCREMENT,
`p_cbr` bigint(20) DEFAULT NULL,
`p_invnum` bigint(20) DEFAULT NULL,
`p_issued` date DEFAULT NULL,
`p_returned` date DEFAULT NULL,
`p_deadtime` smallint(4) DEFAULT NULL COMMENT 'end date',
 PRIMARY KEY (`p_id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4;

但是当我把它上传到phpmyadmin的hosting place上时,我得到了一个表,其中每个列(字段)的右端都有一个小键?我希望只有p\u id是索引字段(右边是灰色键),但所有字段也有黄色键!在“所有字段的操作”列下可见:change | drop | key pic | primary | u unique |除此之外,navicat还提供了空的日期类型字段,其中包含空内容,在托管位置上,它填充了0000-00-00,我不知道如何设置sql以检查某些特定字段是否未填充,例如,我在本地计算机上使用isnull,例如:

select * FROM traffic where p_invnum='$par1' AND ISNULL(p_returned)

我犯了什么错误还是它的phpmyadmin功能?谢谢您。

pkbketx9

pkbketx91#

在phpmyadmin中,我将主题改为另一个,称为“original”,环境现在更加经典,简单,但所提到的表的结构选项现在看起来不同了,正如我所期望的。为什么,我不知道。此外,用0000-00-00代替null(作为默认值)填充的空日期类型字段并不强制我更正查询,mysql可能会接受0000-00-00作为null本身。

相关问题