我有一个需要数据库的应用程序。我将"pskinsurl“的数据库行设置为none,并得到以下错误:
[2017-11-02 18:06:58.514] [ERROR] [default] - Strange error
[2017-11-02 18:06:58.515] [ERROR] [default] - { Error: ER_NO_DEFAULT_FOR_FIELD: Field 'pskinsurl' doesn't have a default value
at Query.Sequence._packetTo
简介:
我遇到了奇怪的MySQL行为-- on CURRENT_TIMESTAMP属性正在添加,尽管我不希望它被添加。我想知道为什么会发生这种情况--我使用的是MySQL服务器还是MySQL工作台(v5.2.38)。
详情:
我使用EER图对数据库结构进行了建模,下面是一个示例表:
CREATE TABLE IF NOT EXISTS `privilege` (
`id` INT NOT NULL ,
`name` VARCHAR(64) NOT NULL COMMENT 'privilege name (just a label)' ,
`created_at`
我有一张列在下面的桌子
`update_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
我使用复制设置了两个数据库。在向上述列插入null时,将插入当前时间戳。
但是,复制到从服务器的相同记录会产生错误。错误是该列不允许使用空值。
唯一的区别是,在从DB中,特定的列在表中进行索引。
Mysql引用有以下行
By default, TIMESTAMP columns are NOT NULL, cannot contain NULL values, and assigning NULL
在mysql中,我需要用空值更新Varchar列。我可以使用这样的查询:
update books set Volume='NULL' WHERE BookId=5457
但是它只是用NULL作为字符串更新列,如果我在mysql函数上使用这个列数据,它将NULL作为字符串返回,而不是真实的NULL。我的主要问题是在这一声明中:
Select Title,COALESCE(Volume,PackId) From books where BookId=5457
我需要COALESCE来获得第一个not null,如果我使用qoutes运行我的更新,它不会向mysql行添加真正的
我在Zend_Db或PDO驱动程序中遇到了一个看起来很奇怪的问题,这可能是因为我对这两种驱动程序缺乏了解。
让我们假设我有一个MySQL表,其中有一个NULL可实现的TIME字段。如果我在MySQL客户机中运行这样的查询:
UPDATE mytable SET mytime = NULL WHERE id = 1;
一切都按预期工作,在查询后mytime字段将保持NULL作为值。
但是,如果我在PHP中通过Zend_Db_Adapter运行完全相同的查询,则mytime字段在这样的查询之后被设置为'0:0:0':
$db->getConnection()->exec
省表
CREATE TABLE IF NOT EXISTS `shmarket`.`PROVINCES` (
`provinceId` VARCHAR(6) NOT NULL,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`provinceId`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
城市餐桌
Table `shmarket`.`CITIES`
CREATE TABLE IF NOT EXISTS `shmarket`.`CITIES
我在尝试自动增加MySQL数据库中的ID列时遇到了一些困难。每个表的主键已经分配好了,所以现在我试图使它们自动递增。我尝试了以下几点,但没有成功:
ALTER TABLE table_name MODIFY COLUMN column_name INT NOT NULL AUTO_INCREMENT;
ALTER TABLE table_name MODIFY column_name INT NOT NULL AUTO_INCREMENT;
ALTER TABLE table_name CHANGE column_name INT NOT NULL AUTO_INCREMENT;
ALT
mysql的版本是mysql Ver 14.14 Distrib 5.5.53, for Win64 (AMD64)
在运行下面的命令之后,输出仍然转到stdout
mysql -uroot -proot DBinstance
select * from tablename\G INTO OUTFILE 'c:\users\12345\Downloads\some_non_existingfile'
上面的命令有什么问题?
编辑:
在重新更正select查询后,我得到以下错误:
ERROR 1290 (HY000): The MySQL server is running
当我试图创建一个无法修复的sql表时,我得到了一个错误:
CREATE TABLE IF NOT EXISTS `#__websitemanager_magazine` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`date` DATE NOT NULL DEFAULT '',
`magazine_file` TEXT NOT NULL,
PRIMARY KE
我正在练习数据类型(日期)和MySQL日期函数。因此,为了便于实践,我尝试创建一个表,并将这两个表(前两个表)都用于“x”列。如果可能的话,我也想用其他的日期函数来做。
所以,
CREATE TABLE testing (
idtesting INT NOT NULL AUTO_INCREMENT KEY,
testingdate date NOT NULL DEFAULT CURDATE()
) ENGINE MyISAM;
如果我没有弄错日期,数据类型期望类似于:YYYY和curdate()返回YYYY。
但是,我收到了这个错误
ERROR 1064 (42000): You have a
我希望将日期设置为mysql中日期的默认值(不是时间戳),但出现以下错误
ALTER TABLE `RMS`.`transactionentry`
CHANGE `Date` `Date` DATE DEFAULT NOW() NOT NULL
误差
Invalid default value for 'Date'
同例
alter table `RMS`.`transactionentry`
change `Date` `Date` date default 'CURRENT_DATE' NOT NULL
我有这样的疑问
mysql_query("INSERT into reviews VALUES(0,$pid,$id,'new')") or die(mysql_error());
好像出了点差错
“您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在第1行使用接近‘new’的正确语法。”
虽然它看起来很好,但数据库表结构是:
`id` int(11) NOT NULL AUTO_INCREMENT,
`proposalid` int(11) NOT NULL,
`reviewerid` int(11) NOT NULL
我不知道为什么VB让所有的事情都这么痛苦。我有一个字段,其中存储的日期和时间所需的格式存储在MySQL数据库中
Dim AppDate As String = String.Empty
If Not String.IsNullOrEmpty(Me.AppDate.Text.Trim) Then
AppDate = Format(CDate(Me.AppDate.Text), "yyyy-MM-dd h:mm:ss")
Else
//Need to assign a null value to AppDate
这个简单的脚本:
create table test (a integer not null, b integer, c integer not null);
create unique index test1 on test (a, b, c);
insert into test values(1, null, 1);
insert into test values(1, null, 1);
select * from test;
使用MySQL成功运行,ORA-0001使用Ora-0001“违反了唯一约束”时失败。
我不确定标准对多个空列上的唯一索引有何看法,但MySQL的行为可能与甲骨文
在我的MySQL表中使用UNIQUE KEY是正确的方式吗?
MySQL数据。
id pid aid
1 2 3
2 3 2
3 3 4
MySQL表。
CREATE TABLE ab (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
pid INT UNSIGNED NOT NULL DEFAULT 0,
aid INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY (pid, aid)
);
我很难在MySQL 5.5中填充模式。每个表都有一个"create_time“和"update_time”,它们是时间戳。我更希望这些列没有默认值,但是即使没有默认值,引用默认值也会出现一个1067错误。
#1067 - Invalid default value for 'update_time'
下面是由MySQL工作台生成的脚本的一部分。
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FO