mysql中怎么将表中的一个字节设置为alternate key

作者&投稿:乐士 (若有异议请与网页底部的电邮联系)
mysql 建表提示: Specified key was too long; max key length is 767 bytes~

字段设置unique索引的时候,是Mysql的字段设置的太长了,把相关字段的长度改了一下就好了。


建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000:
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
举例能看得更明白些,以GBK为例:
CREATE UNIQUE INDEX `unique_record` ON reports (`report_name`, `report_client`, `report_city`);
其中report_name varchar(200), report_client varchar(200), report_city varchar(200)
(200 + 200 +200) * 2 = 1200 > 1000,所有就会报1071错误,只要将report_city改为varchar(100)那么索引就能成功建立。

1,mysql中的存储引擎如何设置?------------默认是myisam,建表的时候也指定,例如: create table test(id int)engine=innodb;
2,如果是将INNODB改成MYISAM怎样改?--------------------alter table test engine=myisam;
3,还有DOS中的MYSQL,怎样保存数据库,表等对象?-----------------在dos中执行 create database databasename; create table test(id int);这样就生成了库和表;对应的系统文件在mysql的安装目录的data下,数据库名对应一个文件夹。比如 create database testdb,那么就能在data目录下找到testdb目录;表等对象的文件要看具体的引擎,如果是myisam引擎,那么就会有三个文件,test.frm,test.myi,test.myd三个,innodb的话只有一个test.frm结构文件,数据和索引文件都在 ibdata1表空间里。
4,PHP如何和MYSQL连接?是否非要输入代码?有没有别的简单方法如UI式设置-------------------需要你写连接信息,网上给你找了个php连接mysql的例子,你参考下
<?php
$mysql_server_name='localhost'; //改成自己的mysql数据库服务器
$mysql_username='root'; //改成自己的mysql数据库用户名
$mysql_password='198791'; //改成自己的mysql数据库密码
$mysql_database='mydb'; //改成自己的mysql数据库名

$conn=mysql_connect ($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); //从这句开始向下解释

$sql='insert into book (name,pwd) values ("ggg","ggg");';
//这是一个SQL语句: 向book表中插入一条记录

mysql_query($sql);
//执行SQL语句

mysql_select_db($mysql_database,$conn); //选择上面表所在的数据库(这一句应该在上面一句的前面执行)

$result=mysql_query($sql); //这一句完全是多余的,和上面的那一个是一样的!

mysql_close($conn); //关闭数据库连接
echo "Hello!操作成功!"; //显示提示信息

?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
通过 AUTO_INCREMENT设置
SQL INSERT语句的时候,要避免 指定那个自增的字段.否则会发生主键的冲突。
通过 ALTER TABLE语句 可以修改 自增的数值, 但是只能增加,不能减少。
TRUNCATE TABLE 语句,会将自增ID重置为零。

mysql> CREATE TABLE test_create_tab2 (
-> id INT AUTO_INCREMENT,
-> val VARCHAR(10),
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 2 |
+----+
1 row in set (0.00 sec)

mysql> select * from test_create_tab2;
+----+---------+
| id | val |
+----+---------+
| 1 | NO id |
| 2 | NO id 2 |
+----+---------+
2 rows in set (0.00 sec)


mysql中如何将数据库表中的一列数字进行随机分成4个组
可以用Floor与Rand函数嵌套表达式为每行记录生成1-4之间的随机数,然后以该随机数对记录行排序,这样就可将该列数随机分成四组了。当然表的记录行数不能太少,否则无法保证至少有4个组。请参考下列sql实现语句:这里假设表名为t1,字段名为num select t.* from (select Floor(4* Rand()+1) as ...

mysql,想将表A字段a的数据复制到表B的a字段,应该如何写?
首先在b表创建a字段,然后执行update操作,sql语句如下 update A,B,set B.a=A.a where A.aid=B.id 给你个建议,数据库是不区分大小写的,表名和列名尽量要有意义。

如何将一个mysql数据库中的一个表导入到另一个mysql数据库中
db1为原数据库,db2为要导出到的数据库,fromtable 是要导出的表名 1.方法一:登录导出到的数据库,执行 create table fromtable select * from db1.fromtable;2.方法二:在cmd下执行,mysqldump -u root -p db1 fromtable file=d:\/fromtable.sql; 输入秘密,root为用户名 登录db2 执行 ...

MySQL如何复制表中的一条记录并插入
1、打开navicat软件,打开要复制表的数据库,如下图所示:2、点击上方的“工具->数据传输”,如下图所示:3、进去之后,左边选择的是要复制的表的数据库,右边选择的将表复制到目标数据库,如下图所示:4、打开左边数据库对象中的“表”,选择要复制哪几张表,点击开始。5、点击开始,会弹出一个框...

mysql中,如何用一条SQL将一张表里的数据插入到另一张表?
选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。9\/12 点击进入下一步。10\/12 在这里完整显示了我们的导入的信息,执行内容,再次确认无误后,点击完成,开始执行。11\/12 可以看到任务执行的过程和进度。12\/12 执行成功:我们可以...

Mysql 怎样将一个数据库中表 数据 插入到 另一个数据库 表中
1.如果2张表的字段一致插入全部数据:insert into 目标表 select from 来源表;insert into db1.table1 select from db2.table2;2.如果只希望导入指定字段:insert into 目标表 (字段1,字段2,...)select 字段1,字段2,...from 来源表;(这里的话字段必须保持一致)insert into db1.table(id)select...

如何向MySQL数据库的表中录入数据
value2,...)insert into tablename set fieldname1=value1,fieldname2=value2,...insert into tablename(fieldname1,fieldname2) select fieldname1,fieldname2 from tablename1以上基本上罗列了用insert插入数据的方法,当然你也可以用insert语句将几行同时插入到一个表中.如下所示:insert into ...

mysql怎么删除一个表
1、可以直接使用drop命令,SQL语句为 DROP TABLE 。2、使用PHP脚本删除数据表:PHP使用 mysqli_query 函数来删除 MySQL 数据表。该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。语法mysqli_query(connection,query,resultmode)。3、当你不再需要该表时, 用 drop;当你仍要保留该表,但...

MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下
update b set tel =(select mobile from a where a.id=b.aid)注:aid是a,b两个表的关联字段

mysql数据库中,如何将表的一列的值替换为该表的另一列的值
update table tableA set tableA.a = (select tableB.b from table tableB where tableA.id = tableB.id)

龙口市15795807875: mysql中怎么将表中的一个字节设置为alternate key -
嵇诞茵胆: 12345678910111213141516171819202122232425262728293031323334353637383940414243 通过 AUTO_INCREMENT设置 SQL INSERT语句的时候,要避免 指定那个自增的字段.否则会发生主键的冲突.通过 ALTER TABLE语句 可以修...

龙口市15795807875: Mysql 把表里的所有记录中的一个字段(如name)全部设为0 -
嵇诞茵胆: update tablename set name='0',name2='0'……where name0 以此类推,多个字段,用逗号隔开.若需要条件,在最后加where条件.

龙口市15795807875: mysql中我要把一个字段设置为唯一,就是不许有重复值,怎么设置 -
嵇诞茵胆: create unique index idx_num on tb_department (dt_name);

龙口市15795807875: mysql中建表时如何设置一个字段的步长 -
嵇诞茵胆: CREATE TABLE jobs( job_id smallint IDENTITY(1,1)--在这里设置步长,第一个1是种子,就是开始号,第二个1 就是步长,就是每次增长增加的数量. PRIMARY KEY CLUSTERED, job...

龙口市15795807875: mysql中如何设置一个字段,表中每增加一个值,这个字段自动产生一个连续的序号?
嵇诞茵胆: 通过 AUTO_INCREMENT设置 SQL INSERT语句的时候,要避免 指定那个自增的字段.否则会发生主键的冲突. 通过 ALTER TABLE语句 可以修改 自增的数值, 但是只能增加,不能减少. TRUNCATE TABLE 语句,会将自增ID重置为零. ...

龙口市15795807875: 怎么在mysql的字段中设置默认值 -
嵇诞茵胆: --SQL:CREATE TABLE test( i_a int NOT NULL DEFAULT 1,ts_b timestamp NOT NULL DEFAULT NOW(),c_c char(2) NOT NULL DEFAULT '1');--以下SQL不合法--time_d time NOT NULL DEFAULT CURTIME(),--date_e date NOT NULL ...

龙口市15795807875: 把mysql数据表中的字段的默认值设置为空字符串怎么设置
嵇诞茵胆: 创建或更改字段时在字段后加default null

龙口市15795807875: 请问在数据库中怎样将一个字段设为自增字段?急急急!帮帮忙哦!! -
嵇诞茵胆: MS SQL Server 数据库是identity MySql 数据库是 auto_increment Oracle 数据库: 首先建立一个序列,如:create sequence SEQ_LZJTESTminvalue 1start with 1increment by 1这样SEQ_LZJTEST就是一个新的序列你现在向数据库表中插...

龙口市15795807875: 怎么用脚本语言设置mysql中的一个值 -
嵇诞茵胆: <?php//连接数据库 try { $dbh=new PDO("mysql:host=localhost;dbname=<库名>","root",""); $dbh->exec("SET NAMES UTF8");//指定编码 } catch (PDOException $e){//错误捕捉 die("发生错误,数据库连接失败!<br />错误代码:[".$e->getCode()."]<br />错误信息:".$e->getMessage()); }$dbh->exec("UPDATE <表名> SET <键名>='值' WHERE <条件>=<?>'");

龙口市15795807875: Mysql中如何设置一个字段,值一经确定便无法修改,比如性别 -
嵇诞茵胆: 用触发器来实现吧,在update操作之前进行报错或者怎样 思路应该是这样的 mysql现在也支持触发器了 不过感觉一般应用上都是用来级联操作 很少用来做禁止变更,这个还是应用或者说业务层方面来限制比较好

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网