Это очень простой запрос MySQL - PullRequest
0 голосов
/ 06 октября 2019
insert into teacher(name, password, gender, bloodgrp, email, branch, dob, medical, no, fno, mno, lno, frno, rollno, aid) 
values("sam", "sam", "male","opositive", "sa@gl.com", "anime", "28\7\99", "nothing", 1234576, 789065,  34567, 23456, 12398, 3, 3);

Когда я использую его, я получаю:

ОШИБКА 1054 (42S22): неизвестный столбец 'bloodgrp' в 'списке полей'

Так почему именноя получаю ошибку?

Структура таблицы:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(20) | YES  |     | NULL    |       |
| password | varchar(10) | YES  |     | NULL    |       |
| gender   | varchar(6)  | YES  |     | NULL    |       |
| email    | varchar(15) | YES  |     | NULL    |       |
| branch   | varchar(5)  | YES  |     | NULL    |       |
| dob      | int(9)      | YES  |     | NULL    |       |
| medical  | varchar(30) | YES  |     | NULL    |       |
| no       | int(10)     | NO   | PRI | 0       |       |
| fno      | int(10)     | YES  | MUL | NULL    |       |
| mno      | int(10)     | YES  | MUL | NULL    |       |
| lno      | int(10)     | YES  | MUL | NULL    |       |
| frno     | int(10)     | YES  | MUL | NULL    |       |
| rollno   | int(10)     | YES  | MUL | NULL    |       |
| aid      | int(10)     | YES  | MUL | NULL    |       |
| bloodgrp | varchar(15) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

Ответы [ 2 ]

1 голос
/ 06 октября 2019

Размещенный код не генерирует ошибку, и вот доказательство

drop table if exists t;
create table t
(name         varchar(20) ,                    
password     varchar(10)  ,                   
gender       varchar(6)   ,                   
email        varchar(15)  ,                   
branch       varchar(5)   ,                   
dob          int(9)       ,                   
medical      varchar(30)  ,                   
no           int(10)     , 
fno          int(10)     ,                 
mno         int(10)      ,                
lno         int(10)      ,                
frno        int(10)      ,                
rollno      int(10)      ,                
aid         int(10)      ,                
bloodgrp  varchar(15) 
);

insert into t
(name, password, gender, bloodgrp, email, branch, dob, medical, no, fno, mno, lno, frno, rollno, aid) 
values("sam", "sam", "male","opositive", "sa@gl.com", "anime", "28\7\99", "nothing", 1234576, 789065,  34567, 23456, 12398, 3, 3);
;

select * from t;
+------+----------+--------+-----------+--------+-------+---------+---------+--------+-------+-------+-------+--------+------+-----------+
| name | password | gender | email     | branch | dob   | medical | no      | fno    | mno   | lno   | frno  | rollno | aid  | bloodgrp  |
+------+----------+--------+-----------+--------+-------+---------+---------+--------+-------+-------+-------+--------+------+-----------+
| sam  | sam      | male   | sa@gl.com | anime  | 28799 | nothing | 1234576 | 789065 | 34567 | 23456 | 12398 |      3 |    3 | opositive |
+------+----------+--------+-----------+--------+-------+---------+---------+--------+-------+-------+-------+--------+------+-----------+
1 row in set (0.01 sec)

Возможно, в таблице есть триггер, который выдает ошибку, или ошибка не возникает из опубликованной вставки.

0 голосов
/ 06 октября 2019

Поскольку вам нужно вызывать столбцы по порядку:

insert into teacher(name, password, gender, email, branch, dob, medical, no, fno, mno, lno, frno, rollno, aid, bloodgrp) 
values("sam", "sam", "male", "sa@gl.com", "anime", "28\7\99", "nothing", 1234576, 789065,  34567, 23456, 12398, 3, 3,"opositive");

Также посмотрите на dob, вы определили его тип данных как int(9), и вы пытаетесь поставить здесь varchar -> "28\7\99",Это может создать новую проблему для вас.

Почему вы определили этот столбец bloodgrp с NULL -> NO и в то же время DEFAULT -> NULL?

...