我知道某些字段没有默认值。
我一直在使用MySQL 5.5.28,每次插入时它都会工作,而不指定该字段的值。该字段为TINYINT,默认情况下,在创建表时不指定任何值,也不声明默认值,在INSERT语句期间将在该字段中插入值0。
但是,在更新到MySQL 5.5.30之后,查询不再工作,返回的字段没有默认值。
我一直在查看changelogs,但是没有发现关于Integer的默认值发生了变化的任何线索。
MySQL 5.5.29:
MySQL 5.5.30:
测试查询:MyTable有字段MyField1和MyField2
INSERT INTO MyTable(MyField2)VALUES
为什么第一次插入是针对table2的。请注意,table2.col_1不为NULL。它不为col_1插入NULL,但神秘地将NULL值转换为空字符串。我使用的是MySQL版本5.5.28。谢谢
mysql> DROP TABLE IF EXISTS table1, table2;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE IF NOT EXISTS table1 (
-> id INT UNSIGNED NOT NULL AUTO_INCREMENT ,
-> col_1
Laravel在Facebook登录时出错,并有以下消息:
General error: 1364 Field 'password' doesn't have a default value
如果我将mysql设置为允许NULL和默认NULL,则可以正常工作。
与脚本相同的db可以在多台其他机器上正常工作。为什么?我的mysql安装有什么问题?(不同机器上的mysql版本是相同的,ubuntu mysql工作正常,mysql失败,mac上的多个家园mysql也运行良好)
CREATE TABLE `users` (
`id` int(10) unsigned NOT
我有两个MySQL数据库实例,比方说: TST和DEV。
TST:
mysql --version
mysql Ver 14.14 Distrib 5.6.40, for Linux (x86_64) using EditLine wrapper
发展:
mysql --version
mysql Ver 14.14 Distrib 5.6.41, for Linux (x86_64) using EditLine wrapper
在这两种环境中几乎相同的版本。
两个实例上的数据库具有相同的架构和相同的数据。
有问题的表的结构如下:
CREATE TABLE `searchItem`
我想从只有1个id_product的mySQL中获取数据,所以当有2个数据具有相同的id_product值时。它只得到了第一个。我已经尝试了在mySQL中的查询和它的工作,查询如下 select `product_photo`.*, `product`.`id_merchant` from `product_photo` inner join `product` on
`product_photo`.`id_product` = `product`.`id` where `product`.`id_merchant` = 11 group by
`product_photo`.`id_p
我正在与mysql2一起使用NodeJS库。我的本地机器和服务器上有相同的代码和数据库结构。当我上传一张照片到“照片”表,在我的本地机器上,它的工作很好。当我使用服务器时,我会得到以下错误:
{错误:数据太长,无法在第1行的第1行、(/srv/project/server/node_modules/mysql2/lib/packets/packet.js:716:13) at Query.Command.execute、(/srv/project/server/node_modules/mysql2/lib/commands/command.js:28:22) at Connection.ha
mysql> SHOW COLUMNS from users LIKE 'created_at';
+------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| created_at | datetime | NO | | NULL | |
+----------
我尝试将我的sql_mode设置为非严格的,方法是进入etc/mysql文件夹,执行sudo vim my.conf并输入sql_mode="",然后用sudo service mysql restart重新启动SQL,但是它不起作用。我也尝试输入SET SQL_MODE="";在我的phpMyAdmin中,但它也不起作用。
由于某些原因,这一行给了我一个错误:
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
#1067 - Invalid default value for 'create
不久前,我记得遇到一个线程,教它如何使MySQL在抛出错误时不那么严格,例如,当我运行C#程序时,它使用MySQL;有时,当它试图发布数据或访问数据时,MySQL会抛出愚蠢的错误,例如:
Field xxx doesn't have a default value
我基本上记得它是多么严格的MySQL错误报告,或者类似的东西。但我不确定这是否正确。我在论坛上有一些人遇到了同样的错误,但不知道有什么方法可以阻止MySQL对错误报告如此严格。
感谢所有的帮助!
我需要在InnoDB表中创建一个日期字段,但是我得到了这个错误
ALTER TABLE `tbl_name` ADD `bdate` DATE NOT NULL AFTER `another_field`;
MySQL said: Documentation
#1292 - Incorrect date value: '0000-00-00' for column 'bdate' at row 1
以前,我研究过很多与我的问题有关的问题,但这些问题都没有解决我的问题。以下问题:
我遵循了教程:
沿航站楼行驶:
Gustavo-Maci:mysql gus$ export PATH=/usr/local/mysql/bin:$PATH
Gustavo-Mac:mysql gus$ mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Error: Access denied for user 'root'@'