你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
bobby
赞同来自: 娃娃脾气
娃娃脾气
赞同来自:
NewTable
type_id
id
name
description
newtable
Schema::create('NewTable', function (Blueprint $table) { $table->integer('type_id')->unsigned(); $table->integer('id')->unsigned(); $table->string('name'); $table->primary(array('type_id', 'id')); $table->timestamps(); });
CREATE TABLE `ssssss` ( `type_id` int(11) NOT NULL , `id` int(11) NOT NULL AUTO_INCREMENT , `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , PRIMARY KEY (`type_id`, `id`), INDEX `id` (`id`) USING BTREE ) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=16 CHECKSUM=0 ROW_FORMAT=DYNAMIC DELAY_KEY_WRITE=0 ;
要回复问题请先登录或注册
13 个回复
bobby
赞同来自: 娃娃脾气
DB::statement('ALTER TABLE system_item DROP PRIMARY KEY,ADD PRIMARY KEY (type_id, id)');
谢谢啦,回答了这么多
娃娃脾气
赞同来自:
还有,你这不叫联合主键。可以叫条件自增。
bobby
赞同来自:
CREATE TABLE (
int(11) NOT NULL ,
int(11) NOT NULL AUTO_INCREMENT ,
varchar(255) NULL DEFAULT NULL ,
varchar(255) NULL DEFAULT NULL ,
PRIMARY KEY ( , )
)
就是这样的语句应该怎么写
娃娃脾气
赞同来自:
但是,这并不能实现你所说的“A自增,B根据A自增,比如A为1,B从1开始自增,A为2,B从1开始自增”
它的作用是限制重复的出现,例如
只有id主键时:id不能重复
id & type_id复合主键: id = 1 & type_id=123 这样一行记录不能出现两次。
但是允许id = 1 & type_id=123 、 id = 1 & type_id=124 这样的两行记录。
具体请百度。
bobby
赞同来自:
后来看文档里也发现了
看文档的时候不够仔细
bobby
赞同来自:
$table->integer('type_id');$table->increments('id');这样写了以后id就变成主键了,再用$table->primary(array('type_id','id'));就出错,好像这些方法里面自动增长的就一定会变成主键
建表之后用drop再primary也不行,there can be only one auto column and it must be defined as a key
直接用navicat里修改表,生成的语句是这样的
ALTER TABLE DROP PRIMARY KEY,ADD PRIMARY KEY ( , );
在一个语句里的,可以正确修改,如果拆成两个语句也不行。
这个如果用$table->这样的方法应该怎么写
娃娃脾气
赞同来自:
遇到问题看文档,按下Ctrl再按F,再输入要查找的词,你就看到了问题所在。
记住:看文档!看文档!看文档!
bobby
赞同来自:
CREATE TABLE NewTable(
type_id int(11) NOT NULL ,
id int(11) NOT NULL AUTO_INCREMENT ,
name varchar(255) NULL DEFAULT NULL ,
PRIMARY KEY (type_id,id)
)
娃娃脾气
赞同来自:
娃娃脾气
赞同来自:
因为自动递增会自动设置主键,但是如果id已经是主键了,又怎么能id&type_id联合主键呢?
bobby
赞同来自:
我的SQL好像是执行不了,我剪辑过的,那来个完整的吧
娃娃脾气
赞同来自:
但是提供了increments方法。
所以没法单独设置递增,只能设置递增+主键。
而id一旦成为主键,便没法成为复合主键了。
娃娃脾气
赞同来自: