2010-09-11 59 views
1

是否有可能让mysql根据插入到同一个表中的另一列中的内容在列中插入值。例如:如果我要在一列中插入纽约,另一列可以自动成为纽约州。是的,我必须在某处存储此信息。但是有可能这样做吗?Mysql自动插入值

回答

0

当然。你可以使用MySQL触发器。

编辑:但是,对于同一张表而言,不幸的是,触发器不允许重新打开它们关联的表格或当时该线程可能打开的任何表格。

+0

我想通过困难的方式:)任何其他方式来做到这一点? – Norman 2010-09-11 11:31:14

2

如果我正确地理解了所有内容,则试图在列中插入一个值(纽约),并在第二列中插入另一个值,该值取决于第一个值(本例中为NY)。

让我们用你的城邦状态的例子,假设你有一个表cities与所有的城邦联合体。

INSERT INTO table SET 
city = 'New York', 
state = (SELECT state FROM cities WHERE city = 'New York'); 

你必须使用这种类型的子查询,而不是使用一个触发器,它会自动补state列,如触发MySQL不能工作在已经打开的表,因为@Michal德罗兹德指出。 (但是,他们至少可以在SQL Server和Oracle中)。