使用SQL Server我尝试做一些非常简单的事情,但解决方案正在逃避我。
我的数据库在创建时抛出错误。我真的只想检查<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
customer.type
是否'Student'
对应'@'
列。
反之亦然,如果customer.email
为customer.type
,则其'Faculty'
列以customer.email
结尾。
我花了大约半个小时的时间研究这个问题,而且我无法让它发挥作用。
'@d.umn.edu'
注意:它不需要在一个约束中。提前谢谢。
答案 0 :(得分:2)
正如之前在评论中所指出的那样,以及用户id212514,你错过了关闭的义务。
其次,在您的插入中,电子邮件ID是最后一个。根据您的值,电子邮件ID将输入到密码字段中,密码将输入到电子邮件ID字段中。
您的陈述应该是:
INSERT INTO Customer (F_name, M_name, L_name, type, street, city, state, zip, email, password)
VALUES
('Jarvis', 'Marvin', 'Vinton', 'Student', '3525 Metz Lane', 'Runnemede St.', 'NJ', 08078, 'vint0934@d.umn.edu', 'Kohque4Oo') --interchanged email and password.
INSERT INTO Customer (F_name, M_name, L_name, type, street, city, state, zip, email, password)
values
('Olivia', 'Audrey', 'Keele', 'Faculty', '2850 Snowbird Ln.', 'Waco', 'NE', 68460, 'keel@d.umn.edu', 'Blackdiamond26')
答案 1 :(得分:1)
你错过了一个右括号。
Create table Customer(
CID int identity(1,1) primary key,
F_name char(25),
M_name char(25),
L_name char(25),
type char(7),
street varchar(50),
city varchar(25),
state char(2),
zip numeric(5),
password varchar(25) not null,
email varchar(25) UNIQUE Not null,
Constraint CK_Customer_type check (type in ('Student','Faculty')),
Constraint CK_Customer_email check((type='Student' AND email like '%@%') OR (type='Faculty' AND email like'%@d.umn.edu'))-- this is throwing an error
) -- <<-- you are missing the closing parenthesis from create table Customer (
在您的插入声明中,您可以反转密码和电子邮件地址。我在列表中交换了它们,它的工作原理如下:
INSERT INTO Customer (F_name, M_name, L_name, type, street, city, state, zip, email, password)
VALUES
('Jarvis', 'Marvin', 'Vinton', 'Student', '3525 Metz Lane', 'Runnemede St.', 'NJ', 08078, 'vint0934@d.umn.edu', 'Kohque4Oo'),
('Olivia', 'Audrey', 'Keele', 'Faculty', '2850 Snowbird Ln.', 'Waco', 'NE', 68460, 'keel@d.umn.edu', 'Blackdiamond26')
(考虑避免以明文形式存储密码)