扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
update a set flag='p' where flag is null;
乳源网站建设公司创新互联建站,乳源网站设计制作,有大型网站制作公司丰富经验。已为乳源千余家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的乳源做网站的公司定做!
你这图片不是插入页吗?
如果你确定真没有值写入,首先查一下,你的set列中是否有'p'还是'P',更新完后可以用show warnings;查看警告信息
补充:
很有可能你指的空值不是null,而是'',所以应该
update a set flag='p' where flag='';
尝试一下。
flag字段定义的集合里的字符串的任意集合
如定义flag('a,b,c,d');
则值可以为 'a' or 'a,c',or 'a,b,c'等等
给你几个方法:
/**
* insert a Row into Orders table using Updateable ResultSet.
*/
public void insertNewRowIntoOrdersTableUsingColumnNames(ResultSet rs)
throws SQLException {
// this method works only if the table is Orders Table in the Demo
// database.
// if the table is different you should change most of this code
// for that purpose.
rs.moveToInsertRow();
rs.updateInt("CUSTOMER_ID_FK", 101);
rs.updateInt("ORDER_ID", 1001);
rs.updateDate("ORDER_DATE", new Date(System.currentTimeMillis()) );
rs.updateString("SHIP_INSTRUCT",
" deliver at Apt. office" + " if no one at home");
rs.updateString("BACKLOG", "N");
rs.updateString("PO_NUM", "BSD100");
rs.updateDate("SHIP_DATE", new Date(System.currentTimeMillis()));
rs.updateFloat("SHIP_WEIGHT", 22.0f);
rs.updateFloat("SHIP_CHARGE", 44.56f);
rs.updateDate("PAID_DATE", new Date(System.currentTimeMillis()));
rs.insertRow();
}
/**
* insert a Row into Orders table using Updateable ResultSet
*/
public void insertNewRowIntoOrdersTableUsingColumnIndexes(ResultSet rs)
throws SQLException {
rs.moveToInsertRow();
rs.updateInt(1, 101);
rs.updateInt(2, 1001);
rs.updateDate(3, new Date(System.currentTimeMillis()));
rs.updateString(4, " deliver at Apt. office if no one at home");
rs.updateString(5, "N");
rs.updateString(5, "BSD100");
rs.updateDate(6, new Date(System.currentTimeMillis()));
rs.updateFloat(7, 22.0f);
rs.updateFloat(8, 44.56f);
rs.updateDate(9, new Date(System.currentTimeMillis()) );
rs.insertRow();
}
/**
* This method deletes nth Row from the result Set
*/
public void deleteNthRow(ResultSet rs,
int rowNum) throws SQLException {
rs.absolute(rowNum);
rs.deleteRow();
}
/**
* this methods updates a value for the nthRow , ith Column .
*/
public void updateNthRowIthColumnValue(ResultSet rs, int nThRow,
int iThColumn,
Object value) throws SQLException {
ResultSetMetaData rMetaData = rs.getMetaData();
int type = rMetaData.getColumnType(iThColumn);
String colName = rMetaData.getColumnName(iThColumn);
rs.absolute(nThRow);
switch (type) {
case Types.CHAR:
case Types.VARCHAR:
case Types.LONGVARCHAR:
rs.updateString(colName, value.toString());
break;
case Types.BIT:
rs.updateByte(colName,
Byte.valueOf(value.toString()).byteValue());
break;
case Types.TINYINT:
case Types.SMALLINT:
case Types.INTEGER:
rs.updateInt(colName,
Integer.valueOf(value.toString()).intValue());
break;
case Types.BIGINT:
rs.updateLong(colName,
Long.valueOf(value.toString()).longValue());
break;
case Types.FLOAT:
rs.updateFloat(colName,
Float.valueOf(value.toString()).floatValue());
break;
case Types.DOUBLE:
rs.updateDouble(colName,
Double.valueOf(value.toString()).doubleValue());
break;
case Types.DATE:
rs.updateDate(colName, Date.valueOf(value.toString()));
break;
case Types.TIME:
rs.updateTime(colName, Time.valueOf(value.toString()));
break;
case Types.TIMESTAMP:
rs.updateTimestamp(colName, Timestamp.valueOf(value.toString()));
break;
default:
rs.updateObject(colName, value);
break;
}
rs.updateRow();
}
/**
* cancel updates in a ResultSet
*/
public void cancelUpdatesInResultSet(ResultSet rs)
throws SQLException {
rs.cancelRowUpdates();
}
/**
* print ResultSet in the Forward Direction from current position;
*/
public void printResultSetRowsInForwardDirection(ResultSet rs)
throws SQLException {
ResultSetMetaData rMetaData = rs.getMetaData();
int nColumns = rMetaData.getColumnCount();
// print metadata
for (int i = 1; i nColumns; i++) {
System.out.print(rMetaData.getColumnName(i) + " : ");
}
System.out.println(rMetaData.getColumnName(nColumns));
// print row
while (rs.next()) {
for (int i = 1; i nColumns; i++) {
System.out.print(rs.getString(i) + " : ");
}
System.out.println(rs.getString(nColumns));
}
}
insert into是mysql中最常用的插入语句,它有6种写法。
如果插入的记录是数字的话要在数字的逗号后面加n:
通过以上实例我们可以看到insert into语句只能向原表中插入于其字段对应的数据,那么能不能通过insert into语句来把其他表的数据插入到原表中呢:
在MySQL中set方法:
ModifyStatement.Set Method 修改语句 set方法
Sets key and value. 设置键和值。
由于insert into语句是一个插入性的语句,所以它的功能要么向指定的表插入数据
也许你看到这个SQL语句是正确的,就觉得这样应该也可以:
mysql mysql insert into 4a set sname=4ainall.sname;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql insert into 4a set sname=4ainall.sname' at line 1
或者这样也可以:
mysql mysql insert into 4a set sname="赵六";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql insert into 4a set sname="赵六"' at line 1
然后这样也是不可用:
mysql insert into 4a select * from 4ainall set sname=4ainall.sname;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from 4ainall set sname=4ainall.sname' at line 1
可以看出由于select是作用于4inall这个表的,而set方法也只能在select语句中,这就直接导致set方法只能作用于4inall这个表,而无法作用于4a这个表。
但是如果我们不用select语句的话编译器又怎么会知道4inall表中的数据在哪里?
显然select是用于查的而set则是一个用于改的方法,两者无法结合在一起——insert into set语句当然也不能用于将其他表的数据插入到原表中了。
MySQL数据库的导入,有两种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件。
在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。
所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。
2. 方法一 SQL脚本形式
操作步骤如下:
2.1. 导出SQL脚本
在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump命令行,导出SQL脚本。
2.1.1 用phpMyAdmin工具
导出选项中,选择导出“结构”和“数据”,不要添加“DROP DATABASE”和“DROP TABLE”选项。
选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。
将导出的SQL文件保存下来。
2.1.2 用mysqldump命令行
命令格式
mysqldump -u用户名 -p 数据库名 数据库名.sql
范例:
mysqldump -uroot -p abc abc.sql
(导出数据库abc到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码。
2.2. 创建空的数据库
通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。
2.3. 将SQL脚本导入执行
同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。
2.3.1 用phpMyAdmin工具
从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。
在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。
注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。
提示输入密码时,输入该数据库用户名的密码。
3 直接拷贝
如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。
3.1 准备原始文件
用tar打包为一个文件
3.2 创建空数据库
3.3 解压
在临时目录中解压,如:
cd /tmp
tar zxf mydb.tar.gz
3.4 拷贝
将解压后的数据库文件拷贝到相关目录
cd mydb/
cp * /var/lib/mysql/mydb/
对于FreeBSD:
cp * /var/db/mysql/mydb/
3.5 权限设置
将拷贝过去的文件的属主改为mysql:mysql,权限改为660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*
打字不易,如满意,望采纳。
insert into set为mysql的扩展语法,适合插入单行
insert into value 为标准SQL语法,能一次插入多行数据
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流