mysql - mysql中的插入语句为每个插入递增

标签 mysql sql database

下面是我的 mysql 表..

create table customer(
    CustId int not null AUTO_INCREMENT primary key,
    FirstName varchar(100) default null,
    LastName varchar(100) default null,
    Gender varchar(40) default null,
    Category varchar(40) default null,
    DateOfBirth date default null,
    Age int(3)default null,
    LastUsed TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
);

create table address(
    Address_Id int not null AUTO_INCREMENT primary key,
    Address varchar(1000) default null,
    Country varchar(40) default null,
    State varchar (50) default null,
    city varchar(50)default null,
    PinCode varchar(20)default null,
    EmailId varchar(50)default null,
    ContactNo varchar(20) default null,
    MobileNo varchar(20) default null,
    CustId int default null,
    foreign key(CustId) references customer(CustId),
    LastUsed TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
);


create table username(
    User_Id int not null AUTO_INCREMENT primary key,
    UserName varchar(50)default null,
    CustId int default null,
    foreign key(CustId)references customer(CustId),
    LastUsed TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
);

create table affiliate(
    Affiliate_Id int not null AUTO_INCREMENT primary key,
    Address_Id int default null,
    foreign key(Address_Id) references address(Address_Id),
    LastUsed TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
);

create table userlogin(
    Login_Id int not null AUTO_INCREMENT primary key,
    UserName varchar(50) default null,
    PassWord varchar(50)default null,
    Category varchar(40)default null,
    LastUsed TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
);

我正在尝试运行以下查询:

start transaction;
    insert into userlogin (UserName) select UserName from username where CustId=1;
    insert into userlogin (PassWord)value ('constant');
    insert into userlogin (Category) select Category from customer where CustId=1;
commit;

但是对于每个插入,它都会增加如何将所有插入放在一行中...... 请指导我作为入门者尝试获取数据库知识。

提前致谢..

最佳答案

我不认为,有任何理由使用单独的插入查询:

INSERT
INTO userlogin
  (
    UserName,
    PassWord,
    Category
  )
  VALUES
  (
    (SELECT UserName FROM username WHERE CustId=1
    ),
    'constant',
    (SELECT Category FROM customer WHERE CustId=1
    )
  )

关于mysql - mysql中的插入语句为每个插入递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23513285/

相关文章:

php - 上传post图片url到mysql数据库,多个url排成一行

mysql - 编码和整理之间的区别?

java - 从查询字符串中获取计数值

c# - WPF、C#、SQL - 在数据库中创建行

ruby-on-rails - 单个或多个数据库? ( rails 3)

mysql - MySQL 中的 Memcache 与缓冲池

php - MYSQL 按字母顺序排序组中最后一条记录

mysql - 时间戳字段只能通过 Yii 中的行为更新

c# - SQL 随机化行和列

sql - 如何为可搜索性构建数据